Thread Über viele(!) Boolesche Werte iterieren: Array oder Bit::Vector oder was? (14 answers)
Opened by flowdy at 2012-08-03 22:56

flowdy
 2012-08-05 20:35
#160656 #160656
User since
2012-08-03
45 Artikel
BenutzerIn

user image
Obige Ergebnisse stammen von meinem Desktoprechner, einem i5-2400 mit DDR3 Arbeitsspeicher.

Auf meinem Thinkpad T42 sieht es etwas anders aus, das arbeitet mit 1.7 statt 3.1 GHz, Speicher dürfte auch langsamer sein, und außerdem werden nur 32bit gleichzeitig verarbeitet. Diese Unterschiede werden die Ursache sein, warum nicht nur die erste Spalte (beachte den Kehrwert) sich unterscheidet sonder auch das Ranking überhaupt:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
      s/iter bitvx bitvm array bitvr strng index vectr slice theor
bitvx 1.98 -- -22% -23% -25% -36% -47% -53% -62% -69%
bitvm 1.55 27% -- -2% -5% -18% -32% -41% -51% -60%
array 1.53 29% 2% -- -3% -17% -31% -40% -51% -59%
bitvr 1.48 34% 5% 3% -- -14% -28% -38% -49% -58%
strng 1.27 55% 22% 20% 16% -- -17% -28% -41% -51%
index 1.06 87% 47% 44% 40% 20% -- -13% -29% -41%
vectr 0.922 115% 69% 66% 60% 38% 15% -- -18% -33%
slice 0.757 162% 105% 102% 95% 68% 40% 22% -- -18%
theor 0.620 219% 150% 147% 138% 105% 71% 49% 22% --


D.h. auf meinem Thinkpad kann der Geschwindigkeitsgewinn von vectr ggü. bitvr, 38%, meiner Meinung nicht mehr den komplizierteren Quelltext rechtfertigen, denn ich habe u.U. das Bitmuster an einem oder an beiden Enden zu kürzen oder zu erweitern und da erscheint mir die Bit::Vector-Schnittstelle dann doch als Vorteil zu überwiegen. Es bleibe also dabei.
package MyClass; sub new {\b\b\b\b\b\b\b\b\buse Moose;

View full thread Über viele(!) Boolesche Werte iterieren: Array oder Bit::Vector oder was?