Мне интересно, какова будет разница в производительности при архивировании данных с помощью rubyzip по сравнению с использованием собственных библиотек ОС для выполнения сжатия. Я извлекаю данные для сжатия из URL-адреса, а затем использую ZipOutputStream для создания zip-файла. В случае собственных утилит ОС я думаю об использовании инструмента zip. Было бы неплохо услышать некоторые плюсы и минусы для обоих подходов.
Rubyzip против собственного сжатия ОС
Ответы (2)
Оказывается, нет большой разницы во времени, затраченном на операцию, или в использовании ЦП. Но была существенная разница, когда дело дошло до использования памяти. С rubyzip процесс закончился тем, что использовал намного больше памяти по сравнению с использованием утилиты zip. В нашем случае использование памяти было серьезной проблемой, и поэтому мы в конечном итоге использовали утилиту zip.
Если вы берете данные из Интернета, вряд ли узким местом будет rubyzip. Я сомневаюсь, что вы увидите большую разницу в производительности, поскольку она будет в основном ограничена скоростью вашего веб-соединения. Кроме того, rubyzip использует собственные библиотеки для выполнения большей части работы. Вероятно, он будет работать нормально, и я был бы очень удивлен, если бы он работал намного медленнее для этого типа приложений. Теперь, если вас беспокоит, сколько циклов процессора потребуется, потому что тысячи потоков будут выполняться одновременно, вы можете использовать библиотеки gnu C.