LoginSignup
1
1

More than 5 years have passed since last update.

Webページのアーカイブにgitを使う場合の保存効率を調べてみた

Last updated at Posted at 2018-02-05

概要

あるWebページを定期的にクロールして、HTMLにいつどんな変化があったのかを保存しておきたいニーズがあり、gitを使う場合と、生HTMLを保存しておく(後からdiffコマンドで差分を見る)場合でどれぐらい保存効率に差があるのか知りたかったため、計測しました。

計測方法

https://github.com/showwin/git_benchmark/blob/master/git_disk_efficiency.py を使って検証しました。ほぼ同じだが、一部が改変されているHTML10個 を用意して、それらを5000ファイルに対してランダムで書き込み、10万回のコミットをしたときのディレクトリの容量を計測しました。(1ファイル当たり平均20回変更が発生していることになります)
生HTML方式は10種類のHTMLを10万回書き出した時のデータ容量を計測しました。

結果

git: 2.1GB
生HTML: 1.5GB

なんとgitで差分を管理する方が効率が悪いことが判明しました…
今回は1ファイルあたり12~13KBのHTMLで、変更部分は2文字〜4行ぐらいの小さな変更ばかりだったのですが、それでもこの結果になるんですね。。
独自で差分管理ファイルシステムを作ったほうが良いのかな… 差分の保存に特化したデータストアをご存知の方はぜひ教えてください…!

追記

git gc というコマンドの存在を知り(doc)適用してみたところ、842MBまで軽量化できました🎉

git gc後: 842MB
生HTML: 1.5GB

なのでgc前と比べると1/3程度になり、生HTMLと比べても半分ぐらいまで減らせました。

1
1
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1