English: A speed test for Mercurial and git (in german). -> Links to other tests [1]. Update: I wrote a new test for use in server applications, since they are the only place where a difference of 30-60ms really matters: hg vs. git for server applications [2].
Ich habe ein paar Testsskripte geschrieben, um die lokale Leistung von Mercurial und GIT vergleichen zu können.
Update: Ich habe einen neuen Test für die Nutzung in Serverprogrammen geschrieben, weil dort der Unterschied um 30-60ms wirklich etwas ausmacht: hg vs. git for server applications [2].
Was ich wissen wollte ist, wie schnell die Systeme jeweils bei lokalen commits sind (andere Operationen prüfe ich noch nicht), und wie sich ihre Leistung ändert, wenn ich die Anzahl der Dateien oder die Art der Änderungen variiere.
Meine Anregung dafür war der Mercurial-vs-Bazaar [3] Test
Ich nutze selbst fast ausschließlich Mercurial, daher kann es sein, dass ich ein paar Optimierungsmöglichkeiten von git übersehen habe. Ich habe bei Mercurial allerdings auch keine genutzt.
Meine Skripte dazu sind alle in einem Mercurial repository im Netz verfügbar: - http://freehg.org/u/ArneBab/python_tests/
Die Testergebnisse genügen nicht wissenschaftlichen Standards, weil
Bei den Tests war git in den meisten Fällen schneller als Mercurial, vor allem mit wenigen Dateien.
Bei vielen Dateien kam die Geschwindigkeit von Mercurial näher an git heran.
Die Tests, die ich gemacht habe sind:
Bisher hat sich git in Tests mit 2 Dateien als um den Faktor 4 bis 5 schneller erwiesen.
Mit 200 Dateien war es noch um den Faktor 2.5 bis 4 schneller.
Gleichzeitig haben die Daten im Mercurial Ordner nur etwa halb so viel Platz eingenommen, wie in git (ohne repack).
Mit 2000 Dateien war git nur noch um den Faktor 2 bis 2,6 schneller. Das git repo hat dabei knapp 100 MiB belegt hat und das Mercurial repo nur knapp 80 MiB.
Struktur der Ergebnisse: = Für 2 Dateien =
init: - git: 0.01423661708831787 s - Mercurial: 0.13704051971435546 s
initial_commit: - git: 0.086095404624938962s - Mercurial: 0.32350056171417235 s
commit_after_append_small: - git: 0.084930634498596197 - Mercurial: 0.31660361289978028
commit_after_append_of_many_lines: - git: 0.086296844482421878 - Mercurial: 0.31294920444488528
commit_after_append_of_one_long_line: - git: 0.08749730587005615 - Mercurial: 0.32180678844451904
= Für 2000 Dateien =
[git, hg], time in seconds, mean value.
init [0.063668489456176758, 0.14365851879119873] - Factor: 2.25635192571
initial_commit [1.5152170658111572, 3.1502538919448853] - Factor: 2.07907762064
commit_after_append_small [1.4661256074905396, 3.7556029558181763] - Factor: 2.56158335727
commit_after_append_of_many_lines [16.113877415657043, 42.500172019004822] - Factor: 2.63748885031
commit_after_append_of_one_long_line [15.808947086334229, 38.482058048248291] - Factor: 2.43419487953
Anmerkungen:
Links:
[1] http://www.zwillingsstern.de/deutsch/freie-software/licht/dvcs-vergleiche-mercurial-git-bazaar-links
[2] http://draketo.de/proj/hg-vs-git-server/test-results.html
[3] http://www.zwillingsstern.de/deutsch/freie-software/licht/python/mercurial-vs-bazaar-link