2011-02-09 12 views
6

ruby​​zipを使用してデータを圧縮すると、圧縮を実行するためにネイティブOSライブラリを使用するのと比べて、パフォーマンスの違いが何であるか疑問に思っています。私はURLから圧縮されるデータを取得し、ZipOutputStreamを使用してzipファイルを作成しています。ネイティブOSユーティリティの場合、私はzipツールの使用を考えています。両方のアプローチについて賛否両論を聞いてうれしいです。RubyzipとネイティブOSの圧縮

+7

ベンチマークit === – denysonique

答えて

2

操作やCPU使用にかかる時間の点で大きな違いはないことが判明しました。しかし、メモリ使用量に関しては大きな違いがありました。 rubyzipを使用すると、zip utilを使用した場合と比べて、多くのメモリを使用してプロセスが終了しました。私たちのユースケースでは、メモリの使用が重大な懸念となり、zip utilを使用してしまいました。

1

ウェブからデータを引き出す場合、ボトルネックはルビジップになるのではないかと疑いがあります。私はあなたのウェブ接続の速度によってほとんど制限されるので、パフォーマンスの違いの多くを見ることはできません。さらにrubyzipはネイティブライブラリを使用してほとんどの作業を行います。おそらくうまくいくだろうし、このタイプのアプリケーションの方がはるかに遅い場合、私は非常に驚くだろう。今度は何千ものスレッドが一度に実行されるために必要なCPUサイクル数が心配だったら、gnu Cライブラリを使いたいかもしれません。