Du könntest ja mal valgrind drauf loslassen. Soweit ich weiß kann man sich da auch Statistiken zur CPU-Cache-Effizienz und ähnlichem Low-Level-Kram ausgeben lassen.
Danke, ich werds mir mal anschauen!
Wenn ihr mal in die CPU-Ansicht schauen würdet, dann hättet ihr bemerkt, daß 64-Bit-Integeroperationen in
Win32 nur "emuliert" werden, indem die Rechenoperationen auf zwei 32-Bit-Integer aufgeteilt werden, was natürlich nicht wirklich schnell sein kann.
Das ist mir schon bewusst, deshalb hatte ich ja auch den entsprechenden Verdacht, dass es an der expliziten Verwendung des uint64_t Datentyps liegen könnte
Die Sache ist, dass nur ca. 5% der Berechnungen wirklich mit diesen Variablen durchgeführt werden. Eben da, wo es wirklich notwendig ist einen großen Integertyp zu verwenden. Das kann einfach nicht einen Performanceunterschied von über 90% ausmachen
Da die Verteilung im Profiler doch ziemlich gleich aussieht, ist der für mich plausibelste Grund momentan die Existenz der 8 zusätzlichen GP-Register und die langsamere Callingconvention.