Powerpaule: Bei mir hat sich das Programm auch mal einfach so beendet, mit Visual Studio hab ich dann rausbekommen, dass es ein Stack overflow war. Kompiliere das sonst immer mit GCC, da das ja auch damit bewertet wird.
Den Overflow war ich aber in meinem Algorithmus selber schuld
Hier mal meine aktuelle Messung:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
image_size num_rectangles OK? Zeit (ms) Referenzzeit (ms) Speed-up
-----------------------------------------------------------------------------
128 1000 Ja 0.359648 1.3211 3.67332
128 10000 Ja 1.72265 7.55056 4.3831
128 100000 Ja 2.886 76.3704 26.4623
128 1000000 Ja 1.65837 593.75 358.031
256 1000 Ja 0.490196 3.73832 7.62617
256 10000 Ja 0.304971 22.8977 75.0816
256 100000 Ja 0.627646 261.625 416.835
256 1000000 Ja 0.270088 2219 8215.85
512 1000 Ja 1.43519 14.5985 10.1719
512 10000 Ja 1.15407 94.4545 81.8449
512 100000 Ja 1.23317 828.333 671.711
512 1000000 Ja 1.22108 16453 13474.2
1024 1000 Ja 3.41297 459.4 134.604
1024 10000 Ja 5.40214 1961 363.004
1024 100000 Ja 5.49319 24734 4502.67
1024 1000000 Ja 4.60829 429735 93252.5
|
Ist nur der Algorithmus für eine grosse Anzahl von Rechtecken.
Crush: Ich denke mal, die extrem geringe Laufzeit bei grosser image_size bei Dir liegt daran, dass du einen wesentlich grösseren L2-Cache hast.
Bis 512 ist die Referenz bei Dir um einen Faktor von ungefähr 2-3 schneller, bei 1024 ist es dann plötzlich 10 mal so schnell.
Ich hab nen Intel Pentium D820, der hat an L1 und L2 die Hälfte von deinem Prozessor.