hi,
ich habe eine App die mit Array arbeitet und trianguliert ( COS() )
für 1000 Points mit ca. 2.000.000 Kalkulationen benötigt Xbase++ ca. 333 Sec.
wenn ich den CLASS Code unter "C" ( harbour / BCC 5.83 ) laufen lasse benötigt die 32 Bit App ca. 90 Sec.
nun hab ich alles auf 64 Bit umgestellt und der selbe Code braucht nur 45 Sec.
Frage : warum ist eine 64 Bit App doppelt so schnell wie die 32 Bit App
p.s. die 2 GB werden dabei längst noch nicht erreicht
64 Bit schneller als 32 Bit
Moderator: Moderatoren
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2829
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 97 Mal
- Danksagung erhalten: 13 Mal
Re: 64 Bit schneller als 32 Bit
Hallo, Jimmy -
einfach mal aus dem hohlen Bauch: weil 32 bit emuliert werden von der 64 bit Hardware? Daher kann das m.E. nicht schneller sein, da die Emulation ja Leistung braucht, die der Programmausführung verloren geht.
Es kann aber auch an anderen Faktoren liegen, solche Messungen sind auf einem Multitasking-System nicht ganz ohne, da man nur eingeschränkten Einfluss hat, was parallel noch alles läuft.
einfach mal aus dem hohlen Bauch: weil 32 bit emuliert werden von der 64 bit Hardware? Daher kann das m.E. nicht schneller sein, da die Emulation ja Leistung braucht, die der Programmausführung verloren geht.
Es kann aber auch an anderen Faktoren liegen, solche Messungen sind auf einem Multitasking-System nicht ganz ohne, da man nur eingeschränkten Einfluss hat, was parallel noch alles läuft.
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: 64 Bit schneller als 32 Bit
hi,
das die 32 Bit Emulation Zeit kostet war klar, aber so viel
ich habe das Sample nach 64 Bit gebracht weil ich mit viel grösseren Arrays arbeiten wollte.
da ich bei dem Source kein 3-PP oder DllCall sondern nur CLASS Code habe war die Umstellung schnell getan.
das Ergebniss 90 Sec zu 333 Sec. "genügte" mir. um so überraschter war ich als die 64 Bit App nur 45 Sec. brauchte.
nun arbeite ich nur mit ASCAN() / AADD() und COS() aber rund 2.000.000 Durchläufe
---
ich habe die harbour Apps mit MT=No laufen.
es gibt relative wenig Grafik Ausgabe oder sonstige I/O Sachen worum man sich "zusätzlich" kümmern muss.
mit MT=Yes läuft diese App deshalb ca. 10% langsamer (aber immer noch 300% schneller als die Xbase++ App )
wenn ich die 32 Bit und die 64 Bit App gleichzeitig starte dauert jede einzelne ca. 10 % länger ( 100 / 50 Sec)
---
Nachtrag : im Original Xbase++ Code hatte ich eine eigene COS() Function ... weil ich nicht die Tools verwenden wollte
nun habe ich es noch mal ausprobiert und benötigte 325 Sec. mit XBTBASE1.LIB / XBTBASE2.LIB ... da hätte ich bei 2.000.000 doch mehr erwartet von der Lib
das die 32 Bit Emulation Zeit kostet war klar, aber so viel
ich habe das Sample nach 64 Bit gebracht weil ich mit viel grösseren Arrays arbeiten wollte.
da ich bei dem Source kein 3-PP oder DllCall sondern nur CLASS Code habe war die Umstellung schnell getan.
das Ergebniss 90 Sec zu 333 Sec. "genügte" mir. um so überraschter war ich als die 64 Bit App nur 45 Sec. brauchte.
nun arbeite ich nur mit ASCAN() / AADD() und COS() aber rund 2.000.000 Durchläufe
---
ich habe die harbour Apps mit MT=No laufen.
es gibt relative wenig Grafik Ausgabe oder sonstige I/O Sachen worum man sich "zusätzlich" kümmern muss.
mit MT=Yes läuft diese App deshalb ca. 10% langsamer (aber immer noch 300% schneller als die Xbase++ App )
wenn ich die 32 Bit und die 64 Bit App gleichzeitig starte dauert jede einzelne ca. 10 % länger ( 100 / 50 Sec)
---
Nachtrag : im Original Xbase++ Code hatte ich eine eigene COS() Function ... weil ich nicht die Tools verwenden wollte
nun habe ich es noch mal ausprobiert und benötigte 325 Sec. mit XBTBASE1.LIB / XBTBASE2.LIB ... da hätte ich bei 2.000.000 doch mehr erwartet von der Lib
gruss by OHR
Jimmy
Jimmy