Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 16, 2025 01:38

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: nochma zu interne rechengenauigkeit
BeitragVerfasst: So Dez 14, 2003 19:49 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 02, 2003 12:47
Beiträge: 300
Wohnort: Marburg
dawurde gesagt, dass single rechnungen schnellersein können, aber nicht in delphi. kann mann denn da in c++ mereinstellungen vornehmen und so rechnungen beschleunigen?

und generell: hatt c++ geschwindigkeitsvorteilr (schliesslich sind glaub ich alle Spiele in C++),oder warum nehmen die sonst C++?

_________________
Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Dez 14, 2003 20:22 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
geo hat geschrieben:
und generell: hatt c++ geschwindigkeitsvorteilr (schliesslich sind glaub ich alle Spiele in C++),oder warum nehmen die sonst C++?

Weil es mittlerweile zu einem völlig veralteten Marketingschlachtruf geworden ist. In meinen Augen ist es vollkommen egal in welcher Sprache (C++ oder Delphi) ein Programm verfasst worden ist. Es wurde schön öffers versucht subjektiv zu Testen was von beiden schneller ist. Nur sind solche Test fern von jeder Realität. Ich habe beruflich sehr viel mit Delphi und C++ zu tun. Und von daher kann ich nur sagen, dass es eher darauf ankommt was DU programmierst als wo die Unterschiede zwischen den Sprachen liegen. Es ist viel wichtiger wie man einen Quellcode schreibt als irgendwelche Unterschiede in der Sprache. C++ ist in manchen Bereichen schneller als Delphi. Keine Frage. Delphi ist wiederum aber aber in manchen anderen Bereichen schneller als C++.

Achte lieber auf das was du programmierst dann ist es egal worin es geschrieben wurde!!

PS: Man kann in beiden Sprachen ein Programm versauen.
Und ich würde das Thema nicht weiter ausholen, da es im "Offtopic" und im "Allgemeinen" schon oft genug durchdiskutiert und geschlossen wurde.


Zu deiner Frage wegen der Genauigkeit. Zu 95% komme ich mit einer Singlegenauigkeit aus. Diese kann allerdings bei gewissen Zahlen eine leichte abweichung beinhalten. Das ist aber meist nicht schlimm. Es wurde aber auch gesagt, dass Delphi Intern so wieso mit Extended arbeitet. Das kann ich allerdings nicht bestätigen oder abweisen. Aber ich meine ich hätte anderweitig auch mal so etwas gehört. Aber wie gesagt. Vom der Geschwindigkeit sollte sich da nichts ändern. Es kommt halt immer darauf an wie genau du es benötigst. Und single ist das fast immer ausreichend. Aber das musst du selber entscheiden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 14, 2003 20:30 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 02, 2003 12:47
Beiträge: 300
Wohnort: Marburg
schankedöhn!!! hatt ich mir schon gedacht, dass die gleichschnell sind.

_________________
Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 14, 2003 20:36 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Delphi lässt die FPU standardmäßig mit Extended(also 80Bit) Genauigkeit Zwischenberechnungen durchführen. Mit dem Befehl Set8087CW lässt sich jedoch das Control Flag der FPU verändern - man kann also auch Single oder Double Genauigkeit einstellen. Soviel zur fest eingestellten FP-Genauigkeit von Delphi.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 14, 2003 21:13 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 02, 2003 12:47
Beiträge: 300
Wohnort: Marburg
Ähh?
wenn ich nu den befehl tippe, ändert der dann auf ne nidrigere ganauigkeit, oder brauch der befehl noch wat hintendrann in klammern (vieleicht den typ single oder extendet oder so) oder so?

hab gerade kein delphi zum testen da. aber bis jetzt hab ich als antwort auch immer bekommen,dass die interne genauigkeit festgestellt ist. verwirrend.

Aber soweit schon mal danke

_________________
Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 14, 2003 21:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Der Auszug aus der Delphi-Hilfe zu SetPrecisionMode sollte die Sache klären :

Zitat:
Die Funktion legt den Präzisionsmodus der FPU fest.

Unit
Math

Kategorie
FPU-Steuerung

Delphi-Syntax:
type TFPUPrecisionMode = (pmSingle, pmReserved, pmDouble, pmExtended);
function SetPrecisionMode(const Precision: TFPUPrecisionMode): TFPUPrecisionMode;

Beschreibung
Mit SetPrecisionMode können Sie festlegen, welchen Präzisionsmodus die FPU für Gleitkommaoperationen verwendet. Der Modus kann folgende Werte annehmen:

Wert Bedeutung
pmSingle Einfache Präzision
pmReserved Wird nicht verwendet
pmDouble Doppelte Präzision
pmExtended Erweiterte Präzision

SetPrecisionMode gibt den vorherigen Präzisionsmodus zurück.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 14, 2003 22:23 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 02, 2003 12:47
Beiträge: 300
Wohnort: Marburg
cool bin gespannt ob dat leistung bringt!!! müsste ja logischer weise

_________________
Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 14, 2003 22:44 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ich habe das auch gerade mal ins Allgemein verschoben, weil es ja nicht viel mit OpenGL zu tun hat.

Geo: Ich gehe mal sehr stark davon aus, dass du erst einem rechtigen Unterschied festellen wirst, wenn du mehrere Millionen Berechnungen durchführst. So in etwa wie bei dem Aufruf von Round. 100 Millionen Aufrufe davon benötigen auf meinem Rechner (Duron 1.2Ghz) gerade mal knappe 300ms. Lässt sich allerdings nur sehr schwer mit richtigen Berechnungen vergleichen. Es ist nur mal so als Beispiel angedacht um zu zeigen, dass bei solchen Sachen nur recht wenig Zeit verbraten wird. Der übeltäter liegt oftmals woanders.
PS: Wenn man Round in einer Methode kappselt die auch wieder nur Round aufruft benötigt es dann glatte 8 Sekunden. ;-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 15, 2003 07:39 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 02, 2003 12:47
Beiträge: 300
Wohnort: Marburg
na mahl sehen:
programm zur simulation von elektronenbewegung in gekreuzten feldern (nur aus spass, weil mein physiklehrer in der LK Klausur ne Aufgabe falsch korigiert hatt :-) bis jetzt 100000 Iterrationsschritte mal etwa 300Elektronen und für jedes gamma, beschl, geschw und neue position berechnen. Hatt mir einfach spass gemacht dass zu optimieren,weil es so ein einfacher Quellcode ist. Bin aber von schon von 30000 auf 100000 schritte pro sekunde hoch nur durch dass einsparen von allen unötigen zwischenspeicherungen von ergebnissen.
und watt mann im kleinen lehrnt wirdsich in komplexeren programmen jawohl genauso gut anwenden lassen.

Hab da grosse pläne, bei denen meine cpu denk ich aufgeben wird. aber die forschung schläft ja nicht.

_________________
Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 15, 2003 10:23 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Son of Satan hat geschrieben:
Der Auszug aus der Delphi-Hilfe zu SetPrecisionMode sollte die Sache klären :

Ja wie? Verdammt, ich sollte mir wohl doch mal die Anschaffung eines neuen Delphis überlegen... Naja, ich war bislang fähig, ins Intel Pentium Handbuch zu schaun, also werd ich das auch in Zukunft sein...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 15, 2003 10:46 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Eine Nachteil hat die Floating-Point geschichte unter Delphi. Normalerweise werden 32-bit-Zahlen (Single sind auch 32-Bit) in Registern gehandhabt und auch an Funktionen übergeben. Delphi greift bei Single-Variablen in Punkto Berechnung zwar auf FPU-Befehle zurück, an Funktionen werden die Werte allerdings aus mir unerklärlichen Gründen nicht per Register (wie Integer-Werte) sondern per Stack übergeben.

Das könnte ein Programm dann doch auf Dauer etwas verlangsammen (wenn man von einer 150 MHZ CPU als Basis ausgeht :)) Abgesehen davon, dass an OpenGL die Daten sowieso per Stack übertragen werden, spielt das ganze also keine Rolle. Wollte es nur der Vollständigkeit halber erwähnen. Das sind dann eben die 0.0012 ms mehr Geschwindigkeit, die ein C/C++ Programm bei abstrakten Zeitmessungen (welche meistens fernab der Realität liegen) schneller ist!

_________________
Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 15, 2003 19:37 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Es nützt ja ohnehin nicht viel, da der normale 80x87 Befehlssatz intern immer mit 80 Bit rechnet. Da ist höchstens über den Speicherdurchsatz noch etwas (wenig) herauszuholen.

Es tut mir leid, wenn ich da (unnötigerweise) Verwirrung gestiftet habe: auch C++ Kompiler bieten in der Hinsicht keine bessere Unterstützung, da die direkte Programmierung von 3DNow oder SSE(2) zwangsläufig die halben Prozessoren außen vor lassen würde.

Meines Wissens gibt es von Intel einen Kompiler, der recht gut auf SSE optimiert - aber wer so aufwändige Berechnungen hat, dass das tatsächlich einen Unterschied macht, kann auch gleich Teile des Codes in Assembler programmieren.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 14 Queries | GZIP : On ]