Во времена win95 были распространены программы, которые позволяли уменьшать свопинг с помощью сжатия отдельных фрагментов памяти (т.е. вместо того чтобы сбрасывать страницу в своп-файл — оставить ее в оперативной памяти, но сжать)
Интересно, почему сейчас эта идея никем не используется?
Здравствуйте, Andrei F., Вы писали:
AF>Во времена win95 были распространены программы, которые позволяли уменьшать свопинг с помощью сжатия отдельных фрагментов памяти (т.е. вместо того чтобы сбрасывать страницу в своп-файл — оставить ее в оперативной памяти, но сжать) AF>Интересно, почему сейчас эта идея никем не используется?
Лучше день потерять, а потом за 5 минут долететь?
Имхо накладные расходы по времени/месту вполне очевидны. Теоретически в системах критичных по скорости имхо проще купить дополнительную планку памяти, чем усложнять механизмы её (пере)распределения. В цифрах конкретных выкладок не приведу, но думаю, врядли этот вопрос совсем не рассматривался осеписателями.
Здравствуйте, Курилка, Вы писали:
К>Лучше день потерять, а потом за 5 минут долететь? К>Имхо накладные расходы по времени/месту вполне очевидны. Теоретически в системах критичных по скорости имхо проще купить дополнительную планку памяти, чем усложнять механизмы её (пере)распределения. В цифрах конкретных выкладок не приведу, но думаю, врядли этот вопрос совсем не рассматривался осеписателями.
Накладные расходы на сжатие очевидны, но они точно меньше чем расходы на выгрузку страницы на винчестер. Особенно в условиях, когда приложения и так активно работают с винчестером.
К тому же дополнительные ядра на процессоре все равно обычно простаивают без дела
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, Курилка, Вы писали:
К>>Лучше день потерять, а потом за 5 минут долететь? К>>Имхо накладные расходы по времени/месту вполне очевидны. Теоретически в системах критичных по скорости имхо проще купить дополнительную планку памяти, чем усложнять механизмы её (пере)распределения. В цифрах конкретных выкладок не приведу, но думаю, врядли этот вопрос совсем не рассматривался осеписателями.
AF>Накладные расходы на сжатие очевидны, но они точно меньше чем расходы на выгрузку страницы на винчестер. Особенно в условиях, когда приложения и так активно работают с винчестером.
И расходы на память будут меньше? У меня вот есть ощущение, что X + Y > X (где Y ненулевое).
И ещё может я, конечно, гоню, но вроде в линухе были какие-то финты ушами, которые позволяют своп в памяти держать. Вполне возможно, что туда можно прикрутить ФС, поддерживающую сжатие.
Правда всё равно в большинстве случаев это экономия на спичках, поэтому рассматривать абстрактно общий случай не очень интересно. А в конкретных системах с хитрыми условиями может приминяться и предложенный тобой вариант. Надо только смотреть что дешевле — купить планку или иметь сношения с нестандартной конфигурацией системы
Здравствуйте, Курилка, Вы писали:
К>И расходы на память будут меньше? У меня вот есть ощущение, что X + Y > X (где Y ненулевое).
Если данные сжать, то они точно станут меньше по объему.
К>Правда всё равно в большинстве случаев это экономия на спичках, поэтому рассматривать абстрактно общий случай не очень интересно. А в конкретных системах с хитрыми условиями может приминяться и предложенный тобой вариант.
Чтобы рассматривать конкретные случаи, надо иметь какие-то тесты, которые эмулируют работу в условиях нехватки оперативки. Интересно, такие существуют в природе?
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, Курилка, Вы писали:
К>>И расходы на память будут меньше? У меня вот есть ощущение, что X + Y > X (где Y ненулевое).
AF>Если данные сжать, то они точно станут меньше по объему.
Т.е. в момент распаковки/запаковки у тебя магическим образом мгновенно испарится сжатая/оригинальная версия участка памяти?
В итоге получим, что нам в любом случае надо иметь "страховочный" объём памяти, равный максимальному размеру сжимаемой области памяти. Или делаем "сжатие по месту" надеясь на то, что в ходе паковки/распаковки ничего не произойдёт? Типа "кто не рискует, тот не пьёт"?
AF>Чтобы рассматривать конкретные случаи, надо иметь какие-то тесты, которые эмулируют работу в условиях нехватки оперативки. Интересно, такие существуют в природе?
Здравствуйте, Курилка, Вы писали:
К>Т.е. в момент распаковки/запаковки у тебя магическим образом мгновенно испарится сжатая/оригинальная версия участка памяти? К>В итоге получим, что нам в любом случае надо иметь "страховочный" объём памяти, равный максимальному размеру сжимаемой области памяти. Или делаем "сжатие по месту" надеясь на то, что в ходе паковки/распаковки ничего не произойдёт? Типа "кто не рискует, тот не пьёт"?
Зачем — максимальному? По минимуму достаточно иметь место для сжатия одной страницы памяти, плюс управляющие данные.
Вот кстати исследование на эту тему: http://www.usenix.org/events/usenix99/full_papers/cervera/cervera.pdf. Результаты вполне положительные.
Всё-таки непонятно, почему сейчас эту идею совсем забросили.
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, Курилка, Вы писали:
К>>Т.е. в момент распаковки/запаковки у тебя магическим образом мгновенно испарится сжатая/оригинальная версия участка памяти? К>>В итоге получим, что нам в любом случае надо иметь "страховочный" объём памяти, равный максимальному размеру сжимаемой области памяти. Или делаем "сжатие по месту" надеясь на то, что в ходе паковки/распаковки ничего не произойдёт? Типа "кто не рискует, тот не пьёт"?
AF>Зачем — максимальному? По минимуму достаточно иметь место для сжатия одной страницы памяти, плюс управляющие данные.
Ну да, про страницы мысль вертелась, тока недоформулировалась AF>Вот кстати исследование на эту тему: http://www.usenix.org/events/usenix99/full_papers/cervera/cervera.pdf. Результаты вполне положительные. AF>Всё-таки непонятно, почему сейчас эту идею совсем забросили.
Здравствуйте, Andrei F., Вы писали:
AF>Во времена win95 были распространены программы, которые позволяли уменьшать свопинг с помощью сжатия отдельных фрагментов памяти (т.е. вместо того чтобы сбрасывать страницу в своп-файл — оставить ее в оперативной памяти, но сжать) AF>Интересно, почему сейчас эта идея никем не используется?
Пользуются там, где памяти мало. Сжатие страниц кэша диска помогает (так как увеличивается вероятность cache hit), сжимать всю память не имеет смысла.
Здравствуйте, Cyberax, Вы писали:
C>Пользуются там, где памяти мало. Сжатие страниц кэша диска помогает (так как увеличивается вероятность cache hit), сжимать всю память не имеет смысла. C>Вот проект: http://code.google.com/p/compcache/
Там речь идет именно о сжатии своп-файла (+хранение его части в RAM), а не кэша диска. А сжимать всю память никто и не предлагал
Интересно, под windows что-то подобное есть?
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, Cyberax, Вы писали:
C>>Пользуются там, где памяти мало. Сжатие страниц кэша диска помогает (так как увеличивается вероятность cache hit), сжимать всю память не имеет смысла. C>>Вот проект: http://code.google.com/p/compcache/
AF>Там речь идет именно о сжатии своп-файла (+хранение его части в RAM), а не кэша диска. А сжимать всю память никто и не предлагал AF>Интересно, под windows что-то подобное есть?
Здравствуйте, IIY, Вы писали:
IIY>Поместить своп в RAMDrive (второе сообщение)?
Тогда своп-файл надо сделать сжатым, а здесь будут проблемы. После перезагрузки содержимое диска пропадет (значит, пропадут и все свойства файла). Да и вообще я не уверен, что своп-файл можно сделать сжатым и после этого ничего не упадет
Здравствуйте, Andrei F., Вы писали:
AF>Во времена win95 были распространены программы, которые позволяли уменьшать свопинг с помощью сжатия отдельных фрагментов памяти (т.е. вместо того чтобы сбрасывать страницу в своп-файл — оставить ее в оперативной памяти, но сжать) AF>Интересно, почему сейчас эта идея никем не используется?
Вероятно, память подешевела, и никто уже не хочет заниматься изготовлением такой приблуды для XP.
Здравствуйте, Andrei F., Вы писали:
C>>Пользуются там, где памяти мало. Сжатие страниц кэша диска помогает (так как увеличивается вероятность cache hit), сжимать всю память не имеет смысла. C>>Вот проект: http://code.google.com/p/compcache/ AF>Там речь идет именно о сжатии своп-файла (+хранение его части в RAM), а не кэша диска. А сжимать всю память никто и не предлагал
Да, точно. Видимо, сжатие памяти так и не допилили.
Здравствуйте, IIY, Вы писали:
IIY>Здравствуйте, Andrei F., Вы писали:
AF>>Здравствуйте, Cyberax, Вы писали:
C>>>Пользуются там, где памяти мало. Сжатие страниц кэша диска помогает (так как увеличивается вероятность cache hit), сжимать всю память не имеет смысла. C>>>Вот проект: http://code.google.com/p/compcache/
AF>>Там речь идет именно о сжатии своп-файла (+хранение его части в RAM), а не кэша диска. А сжимать всю память никто и не предлагал AF>>Интересно, под windows что-то подобное есть?
IIY>Поместить своп в RAMDrive (второе сообщение)?
Помещение SWAP на RAM-диск — этот нонсенс. За это надо убивать сразу.