Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Uwe Raabe,
24. Feb 2016
LPixel: PRGBA;
...
Inc(LPixel, SizeOf(TRGBA));
Das Inc verschiebt den Pointer nun (auf einem 32-Bit System) um 16 Byte weiter. Gemäß der Hilfe:
Inc(LPixel); ist vollkommen ausreichend um das nächste Pixel zu adressieren.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Uwe Raabe,
22. Feb 2016
Mal abgesehen, daß die sich wegen eines zusätzlichen begin nicht compilieren lässt, ist sie zeitlich gleichauf mit der ursprünglichen Routine. Insofern ist bisher noch der einzige erfolgreiche Ansatz zur Optimierung das Aktivieren der Optimierung in den Compileroptionen.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Uwe Raabe,
22. Feb 2016
Das gibt einen ganz ulkigen Effekt auf meinem System, wenn man das Beispielprojekt mit DEBUG oder RELEASE compiliert:
Standard DEBUG: 23-24 ms
Assembler DEBUG: 20-21 ms
Standard RELEASE: 7-8 ms
Assembler RELEASE: 23-24 ms
Spricht irgendwie gegen Assembler...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Uwe Raabe,
21. Feb 2016
Das TParallel.For über die 2819 Zeilen verursacht wahrscheinlich mehr Overhead als die Parallelisierung wettmachen kann. Wenn das ganze Bild ca. 80 ms braucht, dann sind das pro Zeile (also pro Iteration) ca. 0,03 ms. Das ist ein ganz schlechtes Verhältnis. Besser auf deutlich weniger Durchläufe beschränken und jede Iteration über ca. 100-500 Zeilen laufen lassen. Das sind dann pro Task ca....