Autor Beitrag
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Fr 23.09.05 14:22 
Was ist von der Performance her besser für den Prozessor not (x=y) oder x<>y? Oder hängt es vom Prozessor ab? Oder wandelt Delphi das zum gleichem um?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 23.09.05 14:41 
Moin!

Würde sagen, dass hängt vom Datentyp ab. Bei Integern sollte das IMHO egal sein, läuft auf ein CMP und ein JPx hinaus.

cu
Narses
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Fr 23.09.05 14:45 
user profile iconNarses hat folgendes geschrieben:
Moin!

Würde sagen, dass hängt vom Datentyp ab. Bei Integern sollte das IMHO egal sein, läuft auf ein CMP und ein JPx hinaus.

cu
Narses


Was ist CMP und JPx?

@Datentyp ist meistens Integer ;).
digi_c
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1905

W98, XP
D7 PE, Lazarus, WinAVR
BeitragVerfasst: Fr 23.09.05 14:47 
Das ist Assembler also CPU Code.

Ich denke auch das der Compiler so intelligent ist und beides gleich interpretiert.
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Fr 23.09.05 14:50 
Wieso probierst du's nicht einfach aus? In einer Schleife 10 Mio. mal (oder evtl. öfter) zwei Zufallszahlen vergleichen und schauen, welche der beiden Methoden schneller ist...

AXMD
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1654
Erhaltene Danke: 244

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Fr 23.09.05 14:51 
Hallo,

schau Dir das Assemblerlisting an.
mittels F5 oder Mausklick auf die Zeilennummer (mit blauen Punkt sind die kompilierten Zeilen nach Strg+F9 angezeigt)wird eine Haltestelle eingefuegt.(roter Punkt)
Programm starten .
Das Prgramm wird dann, wenn es diesen Codseabschnitt erreicht hat, anhalten.
Dann in Delphi Ansicht->Debugfenster->CPU (STRTG-ALT-C (ist bei mir Hotkey ATI Einstellungen)

Ergebnis es wird beides als
CMP ?,???
Jz vorbei;
...Then Abschnitt;
vorbei:
uebersetzt.
Und was hilft uns das??

Gruss Horst
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Fr 23.09.05 14:53 
beides das selbe.

aber wofür brauchst du das, und kann man sowas nicht selber testen?

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Fr 23.09.05 15:03 
Ich bin dabei mit Delphi gegen einen c - und einen c++ -Programmier um Performance zu kämpfen und da versucht man nat. jedes bisschen noch herauszukitzeln.

@Asm-Code: Ich kenne mich nicht mit Assembler aus, wodurch ich das CPU-Fenster nie nehme ;).

@Testen: Auf meinem müsste ich schon ziemlich viele durchläufe laufen lassen und da die CPU-Last schwankt würde es vlt. auch bei mehreren durchläufen nicht das richtige Ergebnis rauskommen. Und es kann ja Prozessorabhängig sein, wenn der ASM-Code unterschiedlich ist ;).
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Fr 23.09.05 15:12 
Du willst jedes bisschen herauskitzeln und kannst kein Assembler? Sorry, aber das ist irgendwie widersprüchlich...

AXMD
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Fr 23.09.05 15:36 
Ne ist kein Widerspruch. Ich will jedes bisschen Performance herausholen, was Delphi mit seinen Befehlen anbietet. Das ich mit ASM schneller sein kann als die c programmierer ist mit klar, da man einige "Kanten" wegnehemn kann ;).
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Fr 23.09.05 19:43 
Der Wettbewerb ist eigentlich überflüssig, da sich die einzelnen Compiler bzw. das Compilat nicht viel nehmen. Das wurde in der Vergangenheit schon mehrfach bewiesen. c't hatte vor ein oder zwei Jahren einen Vergleich, bei dem mal C, mal Delphi marginal besser wegkam. Selbst mit ASM kann man i.A. nicht viel rausholen, ausser, man benutzt individuelle Tricks, die kein Compiler beherrscht, da sie eine gehörige Portion Erfahrung voraussetzen.

Deine Frage ist nicht einfach zu beantworten: Wenn das Not(a=b) isoliert vorkommt (...If Not (a=b)...), ist das ERgebnis u.U. ganz anders, als wenn der Ausdruck Teil eines komplexeren Ausdruckes ist. Da hilft wirklich nur testen, testen, testen.

Aber wenn Ihr sonst nichts zu tun habt... Mach doch mal einen neuen Thread auf und bitte um Tipps zur performanten Codierung. Oder, wenn Du mit deinen Freunden ein konkretes Wettbewerbsprojekt macht, helfen wir Dir gerne. Wir werden als Forum doch ein paar C++Grünschnäbeln die Butter vom Brot nehmen können, oder?

_________________
Na denn, dann. Bis dann, denn.
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Fr 23.09.05 19:53 
Ich kann ja mal einen Thread dazu aufmachen, wenn ich alles was ich schon verbessern kann verbessert habe ;). Die Unterschiede zw. den Programm sind nicht mehr alzu groß, allerdings sind es 2 verschiedene Plattformen auf den wir testen, da der eine für Linux entwickelt, der andere für Mac (beide testen es aber auf Mac) und ich auf Windows ;). Allerdings auf einen 3,2er, während die das auf einem 1,3er machen ;).
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Fr 23.09.05 20:18 
Ich bevorzuge immer not (X = Y). Finde ich auch übersichtlicher.
Ob es schneller ist, sei mal dahingestellt.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)