Ich habe die Geschwindigkeit von Hash mit Topaz verglichen, einer Ruby-Implementierung, die angeblich mit RPython schneller ist.
Es wurde darauf hingewiesen, dass Ruby's Hash [langsamer als andere Sprachen] ist (http://incise.org/hash-table-benchmarks.html). Es wird gesagt, dass je größer die Größe, desto langsamer ist es als Perl oder Python. (Ich habe vergessen, wo der Vergleich mit Perl war)
Also machte ich einen Vergleich mit einer schwachen Erwartung, dass es schneller sein würde, wenn Topaz verwendet würde.
Für die Einführung von Topaz bezog ich mich auf Spielen mit Topaz, einem Ruby-Verarbeitungssystem, das in RPython-Gnyara-kuns Wktk-Management-Tagebuch geschrieben ist.
Der zum Vergleich verwendete Code finden Sie unter Github. Diesmal habe ich Ecken geschnitten und nicht gemittelt. Als Referenzwert.
Die Umwelt ist MacOS X 10.8.2 Intel Core i5 2.5GHz 8GB RAM
python
$ ruby -v
ruby 1.9.3p362 (2012-12-25 revision 38607) [x86_64-darwin12.2.1]
$ python --version
Python 2.7.3
$ bin/topaz -v
topaz (ruby-1.9.3p125) [x86_64-darwin]
Das Gerät ist Sekunden
size | Ruby1.9.3(int) | Ruby1.9.3(string) | topaz(int) | topaz(string) | Python2.7.3(int) | Python2.7.3(string) |
---|---|---|---|---|---|---|
5000000 | 4.617856 | 8.087801 | 2.649405 | 11.485846 | 0.702034 | 2.473861 |
10000000 | 10.74621 | 19.092902 | 8.377534 | 36.823358 | 1.361577 | 5.112283 |
15000000 | 17.081968 | 29.101156 | 18.608418 | 80.467088 | 2.262289 | 8.392108 |
20000000 | 24.308324 | 39.974923 | 29.239815 | 129.432628 | 2.712998 | 10.639115 |
25000000 | 31.778632 | 51.38185 | 49.467747 | 303.785251 | 4.048304 | 15.097062 |
30000000 | 39.180657 | 60.673959 | 67.91127 | 342.049215 | 4.510771 | 17.036763 |
Das Diagramm sieht so aus.
Topaz ist nicht schneller als ich erwartet hatte. .. ..
Das Gerät ist Sekunden
size | Ruby1.9.3(int) | Ruby1.9.3(string) | topaz(int) | topaz(string) | Python2.7.3(int) | Python2.7.3(string) |
---|---|---|---|---|---|---|
5000000 | 0.600543 | 0.908508 | 0.442561 | 0.678826 | 0.164233 | 0.456206 |
10000000 | 0.631404 | 1.027941 | 0.49407 | 0.738537 | 0.165629 | 0.457019 |
15000000 | 0.665743 | 0.913473 | 0.585652 | 0.883217 | 0.157661 | 0.462758 |
20000000 | 0.72521 | 1.288778 | 0.599958 | 0.93315 | 0.19554 | 0.452863 |
25000000 | 0.561795 | 0.877556 | 0.780173 | 1.232231 | 0.163047 | 0.478319 |
30000000 | 0.657025 | 1.296413 | 0.783736 | 1.353858 | 0.160251 | 0.456952 |
Klicken Sie hier für die Grafik
Ich freue mich auf Topaz, da es in Zukunft vielleicht schneller sein wird, aber im Moment
Es gibt auch verschiedene strenge Punkte wie. Ich freue mich auf die zukünftige Entwicklung.