Git kayıtlarının kapladığı alan testlerle ölçüldü
Öne çıkanlar
- Boş bir Git deposu 'git init' komutunun ardından yaklaşık 64 kilobaytlık başlangıç verisi oluşturdu.
- Büyük bir dizinde yapılan 3 baytlık metin değişikliği nesne ve ağaç kayıtları nedeniyle 17 kilobayt yer kapladı.
- 16,4 megabaytlık kaynak kodu dosyası zlib sıkıştırması sayesinde depoya 1,6 megabayt olarak kaydedildi.
Geliştirici Dave, Git sürüm kontrol sisteminde kayıt işlemlerinin disk üzerinde ne kadar yer kapladığını anlamak amacıyla kontrollü testler gerçekleştirdi. Boş bir Git deposunun yaklaşık 64 kilobaytlık bir temel veri tabanıyla başladığını saptayan geliştirici, küçük değişikliklerin yarattığı ek yükü inceledi. 50 dosyalık bir dizinde yer alan tek bir dosyaya yapılan 3 baytlık metin değişikliğinin dizin yapısı ve nesne kayıtları nedeniyle depoda 17 kilobaytlık ek hacim oluşturduğu görüldü.
Araştırmada tek dosyadan oluşan daha sade bir projede aynı 3 baytlık değişikliğin 8,7 kilobayt yer kapladığı kaydedildi. Git yazılımının her kayıt işleminde yalnızca değişen dosyayı değil, etkilenen dizin ağaçlarını (tree) ve kayıt meta verilerini ayrı birer zlib nesnesi olarak saklaması bu duruma gerekçe gösterildi. Tek bir dosya düzenlemesinde kök dizin, alt dizin, dosya içeriği ve kayıt meta verisi olmak üzere toplam dört yeni nesnenin üretildiği doğrulandı.
Testler dosya boyutu büyüdüğünde zlib sıkıştırmasının getirdiği verimliliği de ortaya koydu. Depoya eklenen 583 kilobaytlık ikili (binary) bir dosya kayıt sonrasında 297 kilobaytlık yer kaplarken, 16,4 megabaytlık büyük bir kaynak kodu dosyası ise 1,6 megabayta sıkıştırıldı. Analiz, küçük kayıtların sabit ek yükler barındırmasına karşın büyük veri kümelerinde Git depolama alanının yüzde 50 ila yüzde 90 oranında tasarruf sağladığını gösterdi.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.