Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Mathem. Parser -- bitte testen (https://www.delphipraxis.net/22764-mathem-parser-bitte-testen.html)

dizzy 23. Mai 2004 04:08


Mathem. Parser -- bitte testen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi DPler!

Ich habe noch so einiges an meinem Parser (hier schon mal vorgestellt) verbessert/geändert.

Habe jetzt auch ein Testprogramm geschrieben. Es führt einige Rechnungen durch, und gibt eine kleine Statistik dazu aus. Folgende Infos von euch würden mich brennend interesieren:
  • welche Dephi-Version hast du?
  • läufts/compilierts damit?
  • sind die Ergebnisse im Testprog korrekt?
  • CPU-Typ + Realtakt
  • die Ergebnisse der Geschwindigkeitsmessung des Testprogs
  • ist die Implementierung hübsch und sauber? (keine Leaks, styleguidekonform, verwendete Techniken...)
    (in CQParser.pas bzw. der QMath(2).pas - nicht das Testprog. Das ist fix zusammengeschustert :mrgreen: )
  • hälst du den Parser für sinnvoll/einsetzbar?
  • Verbesserungs- und/oder Verschönerungs- und/oder Verschnellerungsvorschläge? :zwinker:
Wer Lust hat, der kann ihn sehr gerne komplett auseinandernehmen und kaputttesten. Ich will alles wissen *g*.

Ich erwarte sicherlich nicht von jedem alles beantwortet. Mir geht es hauptsächlich darum zu sehen mit welchen D-Versionen und CPUs der Parser korrekt arbeitet, und wie schnell er es tut (im Vergleich zu einer hardgecodeten Rechnung).

Tipp für die D8-User: Es gibt die Units "QMath" und "QMath2". Ändert im QT des Parsers und des Testprogramms in der uses-Klausel "QMath" auf "QMath2", weil "QMath" verwendet z.T. Assembler. Ich hoffe dass D8 die ganzen Casts zulässt :roll:. Wenn nicht, dann schreit! ;)

Ihr würdet mir einen Riesen-Gefallen tun!

Danke euch schonmal im Voraus,
MfG - dizzy


\\div. Edits: Ein paar Umformulierungen - nix wildes...

fkerber 23. Mai 2004 10:03

Re: Mathem. Parser -- bitte testen
 
Hi!
  • D7 Personal
  • Lässt sich kompilieren und läuft einwandfrei
  • Ergebnisse sind korrekt
  • P IV 2,4 GHz
  • von oben nach unten: 1407,72 | 1966,5 | 5002,71 | 9479,05

Ciao fkerber

Mirilin 23. Mai 2004 11:14

Re: Mathem. Parser -- bitte testen
 
:hi:

Delphi Version : D6 Pro
läuft problemlos
P4 2.53GHz
950.673 // 1955.96 // 4569.26 // 9236.61


mfg Tobias


ps. zum Rest später

axelf98 23. Mai 2004 12:09

Re: Mathem. Parser -- bitte testen
 
Läuft, aber recht langsam!

Delphi Version : D7 Pers
PIII 900 MHz
2217.17 // 3530.36 // 8301.3 // 17899

ibp 23. Mai 2004 12:11

Re: Mathem. Parser -- bitte testen
 
hi, hab auch getestet mit:

P 4 2,59 GHz , 512 MB Ram, XP Professional 2002 SP1
Delphi 7.1 Architekt

ergaben:

68973
140964
312482
635788


es scheint so als hätte ich ein paar performance probleme, kennt jemand abhilfe?

gruß rene

ps:
oops mein alter ist 2 fach schneller:
PII, 350 MHz 128MB, WIN98
4279
8071
18313
32403

... da muß ich wohl mal was machen !

Mirilin 23. Mai 2004 12:14

Re: Mathem. Parser -- bitte testen
 
:hi:

:gruebel:
wenn Du ein Komma setzt, dann sähe es ähnlich wie bei uns aus.

Zitat:

689.73
1409.64
3124.82
6357.88

ansonsten :shock:

mfg Tobias

mirage228 23. Mai 2004 12:26

Re: Mathem. Parser -- bitte testen
 
Bei mir läufts auch:

Delphi3 Professional:
Nicht kompilierbar:
Keine Unterstützung für Overloads,
Unbekannte Funktionen
Konnte DFM (trotz konvertierung) nicht lesen.

Delphi6 Personal:
1936,8
3483,25
7767,72
16593,5

Delphi7 Professional:
1783,7
3185,13
7086,88
14845,4

Delphi8 Professional:
Nicht kompilierbar:
[Fehler] QMath.pas(109): Sprach-Feature wird nicht unterstützt: 'ASM'

Hab nen P4 1.5 GHz, 1 GB RAM, WinXP Pro SP1

mfG
mirage228

ibp 23. Mai 2004 12:29

Re: Mathem. Parser -- bitte testen
 
hi mirlin,
hab die kommata schon hinten abgeschnitten !!!!!!! scheiß rechner: :wall:

ibp 23. Mai 2004 12:33

Re: Mathem. Parser -- bitte testen
 
hi mirage228,
nochmal durchlesen für delphi 8:

"Tipp für die D8-User: Es gibt die Units "QMath" und "QMath2". Ändert im QT des Parsers und des Testprogramms in der uses-Klausel "QMath" auf "QMath2", weil "QMath" verwendet z.T. Assembler."

und zu mirilin war keine absicht so viele i's! :zwinker:

mirage228 23. Mai 2004 12:44

Re: Mathem. Parser -- bitte testen
 
Zitat:

Zitat von ibp
hi mirage228,
nochmal durchlesen für delphi 8:

"Tipp für die D8-User: Es gibt die Units "QMath" und "QMath2". Ändert im QT des Parsers und des Testprogramms in der uses-Klausel "QMath" auf "QMath2", weil "QMath" verwendet z.T. Assembler."

und zu mirilin war keine absicht so viele i's! :zwinker:

Hi,

Es funktioniert trotzdem nicht (selbst wenn ich {$UNSAFECODE ON} setze und alle Prozeduren als unsafe; markiere):
Code:
[Warnung] CQTest.dpr(7): Unit 'Borland.Vcl.Forms' ist plattformspezifisch
[Warnung] UCQTest.pas(6): Unit 'Borland.Vcl.Windows' ist plattformspezifisch
[Warnung] UCQTest.pas(6): Unit 'Borland.Vcl.Messages' ist plattformspezifisch
[Warnung] UCQTest.pas(6): Unit 'Borland.Vcl.Graphics' ist plattformspezifisch
[Warnung] UCQTest.pas(6): Unit 'Borland.Vcl.Controls' ist plattformspezifisch
[Warnung] UCQTest.pas(6): Unit 'Borland.Vcl.Forms' ist plattformspezifisch
[Warnung] UCQTest.pas(7): Unit 'Borland.Vcl.Dialogs' ist plattformspezifisch
[Fehler] CQParser.pas(198): Undefinierter Bezeichner: 'PDouble'
[Fehler] CQParser.pas(218): Unsichere Zeigervariablen, Parameter oder Konstanten sind nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(233): Unsichere Zeigervariablen, Parameter oder Konstanten sind nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(267): Unsichere Zeigervariablen, Parameter oder Konstanten sind nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(300): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(305): Unsichere Zeigervariablen, Parameter oder Konstanten sind nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(338): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(380): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(404): Undefinierter Bezeichner: 'FreeMem'
[Fehler] CQParser.pas(407): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden
[Fehler] CQParser.pas(408): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden
[Fehler] CQParser.pas(417): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden
[Fehler] CQParser.pas(418): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden
[Fehler] CQParser.pas(427): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden
[Fehler] CQParser.pas(428): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden
[Fehler] CQParser.pas(437): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden
[Fehler] CQParser.pas(438): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden
[Fehler] CQParser.pas(439): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden
[Fehler] CQParser.pas(448): Es gibt keine überladene Version von 'Create', die man mit diesen Argumenten aufrufen kann
[Fehler] CQParser.pas(453): Es gibt keine überladene Version von 'Create', die man mit diesen Argumenten aufrufen kann
[Fehler] CQParser.pas(458): Es gibt keine überladene Version von 'Create', die man mit diesen Argumenten aufrufen kann
[Fehler] CQParser.pas(467): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(468): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(469): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(476): Der linken Seite kann nichts zugewiesen werden
[Fehler] CQParser.pas(476): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(477): Der linken Seite kann nichts zugewiesen werden
[Fehler] CQParser.pas(477): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(478): Der linken Seite kann nichts zugewiesen werden
[Fehler] CQParser.pas(478): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Warnung] CQParser.pas(571): WideChar in Set-Ausdrücken auf ByteChar verkürzt
[Warnung] CQParser.pas(571): WideChar in Set-Ausdrücken auf ByteChar verkürzt
[Warnung] CQParser.pas(572): WideChar in Set-Ausdrücken auf ByteChar verkürzt
[Warnung] CQParser.pas(572): WideChar in Set-Ausdrücken auf ByteChar verkürzt
[Fehler] CQParser.pas(723): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(724): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(725): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(726): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(727): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(728): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(729): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(730): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(733): Undefinierter Bezeichner: 'getmem'
[Fehler] CQParser.pas(734): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(743): Unsichere Zeigervariablen, Parameter oder Konstanten sind nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(882): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(883): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(884): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(885): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(886): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(887): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(888): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(889): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(892): Undefinierter Bezeichner: 'getmem'
[Fehler] CQParser.pas(903): Unsichere Zeigervariablen, Parameter oder Konstanten sind nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(1042): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(1043): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(1044): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(1045): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(1046): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(1047): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(1048): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(1049): Unsicherer Code ist nur in unsicheren Prozeduren zulässig
[Fehler] CQParser.pas(1052): Undefinierter Bezeichner: 'getmem'
[Fataler Fehler] UCQTest.pas(7): Verwendete Unit 'CQParser.pas' kann nicht compiliert werden
...

mfG
mirage228

Christian Seehase 23. Mai 2004 14:37

Re: Mathem. Parser -- bitte testen
 
Moin Dizzy,

das ist bei mir herausgekommen:

P4 2,4 / 512MB / W2K SP4

Delphi 5 Pro:
  • Sign fehlt
    als Kommentar angegebenen Workaround verwendet
  • PDOUBLE
    Als ^double deklariert
  • Coth
    ersetzt durch := 1
  • SameValue fehlt
    Workaround:
    if Abs(ex.x-2) <= 0.0000000001 then
  • Unit Variants aus den Uses entfert

Ergebnisse:
1092
2489,66
4773,94
9162,88

Delphi 6 Personal:
  • Die Prozeduren/Funktionen
    Quat2Comp, Comp2Quat, AddC, MulC, SqrC, SqrQ, MulQ, AddQ, SubQ, AbsQ
    zusätzlich mit Begin/end versehen, da ansonsten die Recordfelder (z.B. x)
    nicht erkannt wurden.

Ergebnisse:
1042,16
2022,38
Abbruch mit Access Violation bei Aufruf von:
Delphi-Quellcode:
procedure TCQParser.Solve(var result: TComplex);
//...
    nfComplex  : result := FRootC.Solve;
//...
end;
Delphi 7 Personal:

Ergebnisse:
1050,68
2022,64
4732,55
9164,42

ripper8472 23. Mai 2004 15:00

Re: Mathem. Parser -- bitte testen
 
Delphi 5 Enterprise

W2K SP 4
AMD Athlon C 1.4 GHz
384 MB SD-RAM

coth(x) hab ich als cosh(x)/sinh(x) deklariert
sonst wie Christian Seehase

1415,23
2419,79
5364,23
10927,1

dizzy 23. Mai 2004 15:21

Re: Mathem. Parser -- bitte testen
 
Hallö!

Ja schon mal gaaaanz herzlichen Dank für die Testerei! Das hat mir schon mal deutlich weitergeholfen!

Zitat:

Zitat von fkerber
Hi!
  • D7 Personal
  • Lässt sich kompilieren und läuft einwandfrei
  • Ergebnisse sind korrekt
  • P IV 2,4 GHz
  • von oben nach unten: 1407,72 | 1966,5 | 5002,71 | 9479,05

Das ist ja n Ding. Ich hab einen AMD mit Realtakt 2.16 GHz, und der ist deutlich schneller... Ich glaube ich steige nächstes Upgrade doch nicht auf Intel um :roll: ;)

@Mirilin: Cool, D6 geht auch *puh*. Aber auch bei dir: Was ist mit der angeblichen Intel-Performance!?

@axelf98: Nun gut... mit 900MHz dürfte man keine allzu großen Höhenflüge in Sachen Speed erwarten :zwinker: (Aber gut zu wissen, dass auch ein P3 damit klar kommt!)

@ibp: :shock: Sind das wirklich die Werte? Sind in ms. Sagt dir dein subjektiven Empfinden die selbe Dauer? Dann hast du definitiv irgendwo was ganz ganz heftiges im Hintergrund laufen, oder du solltest mal im BIOS ein paar Schalter drehen ;)
Das sind heftige Zeiten...
Und ein P2 geht auch. Subber! (Der ist ja sogar ziemlich fix! Sowas...)

@mirage228: Nun gut. D3 geht also nicht mehr. Dann kann ich also getrost behaupten, dass das Teil mit den Versionen 6 und 7 kompiliert, gell!?
Und was D8 angeht :shock: Ich hab befürchtet, dass die Casterei da Probleme macht... Das Errorlog liest sich ja grausam :? Und dass die Sachen mit "getmem" "freemem" nicht gehen, dass hätte ich mir auch denken können... :wall:
Nun, also ist das Teil nicht für D8 geeignet. Aber die "QMath2.pas" alleine sollte gehen :D

@Christian: Ui! D5 hat Probleme gemacht!? Schade... gut, den PDouble kann man verschmerzen. Dass Sign fehlt geht auch noch. Aber dass der Cotangens hyperbolicus nicht implementiert ist... :roll: :) Ich muss zugeben, ich habe keine große Lust den selber einzubauen... Naja sei's drum.
Aber Unit Variants!? Wo wie was!? Die muss sich eingeschmuggelt haben! Die gehört nicht rein. Sorry. (Ist aber nur im Testprog - der Parser ist clean *g*)
Haben auch andere das Problem mit D6? Ich kann es nicht nachvollziehen! Dass dann eine AV kommt, nachdem du begin..end eingefügt hast ist nachvollziehbar, da Delphi dann noch einiges um meinen asm-Code "herumdichtet" was so nicht erwartet wird. Tritt das Problem nur bei D6 Personal auf? Wenn - auch bei anderen?


Zitat:

Zitat von ripper8472
coth(x) hab ich als cosh(x)/sinh(x) deklariert

:wall: na klar... Oh mann das ist einfach - stimmt ja :roll: Okay, dann muss man dort etwas fummeln. Danke für Test+Tipp!

Joooo, dann schon mal ganz dicken Dank an euch! :dp:
Weitere Kommentare und Ergebnisse sind ausdrücklich erwünscht! :)


MfG,
dizzy

\\edit: "ripper"-Quote angefügt
\\edit2: Au Backe... ich muss was an meiner Smiley-Sucht machen... Das ist ja nicht mahr schön... :roll: :zwinker:

Christian Seehase 23. Mai 2004 15:33

Re: Mathem. Parser -- bitte testen
 
Moin Dizzy,

die Unit Variants wird seit D6 automatisch mit eingebunden (warum auch immer).
Was die Begin/End Blöcke angeht: Ohne die hätte ich es nicht kompilieren können. ;-)

Nicolai1234 23. Mai 2004 16:13

Re: Mathem. Parser -- bitte testen
 
Ich kann es nicht compilieren!
Delphi 6 Enterprise
Und ich habe begin und end eingefügt! Es ging beide male nicht!

dizzy 23. Mai 2004 16:19

Re: Mathem. Parser -- bitte testen
 
Was gibt D denn für Fehlermeldungen aus bei dir?

Bei mirage ging's mit D6... Was hast du anders gemacht mirage!? Interessant auch, dass D5 scheinbar keine großen Schwierigkeiten macht, D6 aber um so mehr... :gruebel:

Nicolai1234 23. Mai 2004 16:20

Re: Mathem. Parser -- bitte testen
 
Sorry, ich habe nich gedacht beim schreiben!
Ich kann das Prgramm Compilieren, aber wenn ich auf START drücke, dann macht er garnichts mehr!

dizzy 23. Mai 2004 16:21

Re: Mathem. Parser -- bitte testen
 
Oops, des ist schade. Könntest du mal Durchsteppen? Geht denn überhaupt die erste Berechnung? Die 2. sollte es auch tun. Wo hängt er sich weg?

Nicolai1234 23. Mai 2004 16:25

Re: Mathem. Parser -- bitte testen
 
Beim STarten werden die ersten beiden Edits rot und dann passiert garnichts mehr!

dizzy 23. Mai 2004 16:26

Re: Mathem. Parser -- bitte testen
 
Sofort beide rot? Das ist komisch. Dann müsste es eigentlich an dem Testprogramm liegen, nicht am Parser ...glaube ich. Das ist sehr komisch... Ich bastel mal moch ein anderes Testprog zu morgen.

Thorben86 23. Mai 2004 16:28

Re: Mathem. Parser -- bitte testen
 
Mit
Delphi 4 Standard:
Nicht zu öffnen (Ungültiges Stream-Format)


Delphi 7 Enterprise:
Jede Menge Warungen auf unsicheren Code, aber ohne Probleme Compilierbar

Daten: 1154,52 | 1958,8 | 5002,25 | 9538,73

€dit: bei mir hat das durchlaufen gut geklappt(alles nacheinander)
€dit2: AMD Athlon Thunderbird 1.4 GHz | 512 MB PC133 | Win2K SP4

fkerber 23. Mai 2004 16:34

Re: Mathem. Parser -- bitte testen
 
Hi!

Zitat:

Mit
Delphi 4 Standart: // AAh
Nicht zu öffnen (Ungültiges Stream-Format)
Da musst du die DFM konvertieren.

Ciao fkerber

Nicolai1234 23. Mai 2004 16:43

Re: Mathem. Parser -- bitte testen
 
MIt D3 das gleiche

Robert_G 23. Mai 2004 16:47

Re: Mathem. Parser -- bitte testen
 
Bei mir (D7Pro) kompostiert er natürlich einwandfrei. ;)

Aber wenn du was zum Lachen haben willst. ;)
Ich habe mir vorgestern mein MoBo zersägt, mit den Einstelllungen, in denen der PC noch startet bekomme ich:
1,66675E6
2,88055E6
7,24305E6
1,4625E7
:shock: :lol:
Montag gibt's ein neues :roll:

Nachtrag:
Ich habe noch ein paar Jumper geändert (mit 'nen kaputten Flash bringen BIOS-Einstellungen ja nix :roll: )
Jetzt bekomme ich sogar Minuswerte :lol:
-285962
-554761
-1,4009E6
-2,8269E6

Brainstalker 23. Mai 2004 17:25

Re: Mathem. Parser -- bitte testen
 
Habs auch mal schnell getestet.

Windows XP Pro SP1
Pentium IV 2,4GHz
1GB Ram
Delphi 7 Enterprise

Lässt sich einwandfrei kompilieren.
Bei mir folgende Ergebnisse:

964,62
1817,92
4357,34
8522,86

dizzy 23. Mai 2004 17:57

Re: Mathem. Parser -- bitte testen
 
Zitat:

Zitat von Thorben86
Mit
Delphi 4 Standard:
Nicht zu öffnen (Ungültiges Stream-Format)

Nun gut, das ist ein Problem des Testprogramms. (DFM-File)


Zitat:

Zitat von Thorben86
Delphi 7 Enterprise:
Jede Menge Warungen auf unsicheren Code, aber ohne Probleme Compilierbar

Daten: 1154,52 | 1958,8 | 5002,25 | 9538,73

Tja, unsicherer Code ist da massig drin. Aber das stört mich nur wenig. Einfach diese Prüfung in Delphi abschalten, und alles ist gut :)
Dann warte ich mit der Entwicklung für .NET bis ich mal irgendwann D9 haben sollte *g*.

@Robert_G: :shock: Na da hast du aber nicht grad nen Schnellkomposter, was!? :lol:
Ich würde sagen, du brauchst ganz dringend ein neues MoBo... Solche Werte sind der Knaller. Hast du den Test seit heute morgen laufen gehabt!?

@Brainstalker: Danggööö!

H4ndy 23. Mai 2004 17:58

Re: Mathem. Parser -- bitte testen
 
Delphi7 Personal ohne probs kompiliert

WinXP Prof. SP1
AthlonXP 2200+ @ 1800MHz (also Standart)

Der Reihe nach:
1095,01
1734,92
4458,86
8328,4

Ich glaub ich könnte mehr rausholen nur
wenn ich im Internet bin dann wird etwas
mehr am Prozessor durch Windows gezapft.

Robert_G 23. Mai 2004 18:01

Re: Mathem. Parser -- bitte testen
 
Die Dauer war ins gesamt nur etwa 5-7 Sekunden, frag's Pferd wie er auf die riesigen Zahlen kommt.
Das MoBo hebe ich mir aber auf, alleine schon wegen der lustigen Ergebnisse, die eine Abfrage auf Oracle bringt. :lol:

dizzy 23. Mai 2004 20:23

Re: Mathem. Parser -- bitte testen
 
Zitat:

Zitat von Robert_G
Die Dauer war ins gesamt nur etwa 5-7 Sekunden, frag's Pferd wie er auf die riesigen Zahlen kommt.
Das MoBo hebe ich mir aber auf, alleine schon wegen der lustigen Ergebnisse, die eine Abfrage auf Oracle bringt. :lol:

Vielleicht hast du ja sogar ganz unverhofft den ersten Quantencomputer gebaut :mrgreen: Lustig finde ich aber, dass sogar bei dir das Verhältnis von hardgecodeter Rechnung und dem reellen Parsermode mit dem der anderen Test übereinstimmt! Das schwankt so zwischen 0.55 und 0.7. => Der Parser arbeitet im Schnitt 0.63 Mal so schnell (bei normalen Zahlen) wie sonst hardcoded. Ist das ein guter Wert? Kennt jemand Vergleichsparser?

Und was mir noch am Herzen läge: Ist's sauber geproggt? Habe mir dieses Mal größere Mühe in Sachen Styleguide-Konformität und so gemacht. Würde soetwas z.B. von den Jedis zugelassen werden?
Und auch noch die Frage, ob das Ding überhaupt sinnvoll ist. Braucht ihr sowas? Könnte das jemand in der Form brauchen? *hoff* :)


Nochmals herzlischen Dönk!
dizzy

(Und wer will - bitte auch weiter noch testen. Je mehr Meinungen desto besser weiss ich, wass noch getan werden muss!)

ibp 23. Mai 2004 21:25

Re: Mathem. Parser -- bitte testen
 
hallo dizzy,
hab mal ein wenig rumgeforscht und dabei ist mir was komisches aufgefallen:
wenn ich dein prog starte und das erste mal durchlaufen lasse, bekomme ich diese werte:
1625,23 / 3330,56 / 7460,16 / 14629,31
ergibt als summe: 27044,95 das etspricht ca. der zeit die man beim verlauf der cpu-auslastung beobachten kann und meiner subjektiven empfindung! :wink:
wenn ich nun nochmals start drücke passiert das:
die ausgabewerte ändern sich nur geringfügig :!:
aber der verlauf zeigt nun ca 11 sec an :gruebel: entsprechend meinem gefühl!
wie geht dem ????? :wiejetzt:

gruß rene

dizzy 23. Mai 2004 22:18

Re: Mathem. Parser -- bitte testen
 
Das ist in der Tat etwas seltsam... Eventuell liegt es an deiner CPU/MoBo. Die Dauer wird mittels des vom BIOS geführten Clock-Counter ermittelt (ich glaube die Routine ist von Hagen hier...).
Wenn deine CPU ein Intel ist, und mein Glaube richtig ist, dann schaltet der vielleicht zwischen verschiedenen Geschwindigkeiten hin und her, je nach Temperatur. Die Taktrate wird aber nur ein Mal pro Messbeginn vor jedem Modus-Test ermittelt, und für die gesamte Messdauer angenommen. Wenn während der Messung also die CPU switchet, das BIOS aber den Ursprungstakt weiterzählt, dann kann es da tatsächlich zu Unterschieden kommen :?
Das wäre natürlich schade - wobei das Verhältnis der Werte zueinander ja durchaus im Rahmen bleibt.

Kann sonst noch jemand diesen Eindruck bestätigen? Mit CPU/Chipsatz/BIOS-Angbe evtl.
Wäre ja auch mal generell interesant!


gruss,
dizzy

gekmihesg 23. Mai 2004 22:58

Re: Mathem. Parser -- bitte testen
 
lol! pentium II 350Mhz 196MB

5416,54
8829,13
20140,3
65871

:D

is aber recht viel nebenher gelaufen... kann auch daran liegen... werds aber jetzt nicht schließen!

Alexander 24. Mai 2004 17:59

Re: Mathem. Parser -- bitte testen
 
Liste der Anhänge anzeigen (Anzahl: 1)
AMD Athlon 2500+, müssten so um die 2000 Mhz sein.
Delphi 7 ohne Probleme
Ergebnis siehe Anhang ;-)

Luckie 24. Mai 2004 18:05

Re: Mathem. Parser -- bitte testen
 
Irgendwie kann ich das Teil nicht kompilieren:
Zitat:

Zitat von QMath
[Error] QMath.pas(110): Undeclared identifier: 'x'

:gruebel:
Delphi-Quellcode:
procedure Quat2Comp(const Q : TQuat; var C1, C2 : TComplex);
asm
  fld Q.x; // <- Zeile 110

mirage228 24. Mai 2004 18:08

Re: Mathem. Parser -- bitte testen
 
Komisch, mit meinem Delphi 6 Personal ging es anstandslos...

mfG
mirage228

Alexander 24. Mai 2004 18:12

Re: Mathem. Parser -- bitte testen
 
Achso kannst du für Dumme den Code nochmal kommentieren ?
Mich interessiert dieses Thema nämlich sehr ;-)
Und ich kann überhaupt kein Assembler ;-) und habe keine Zeit mich in Assembler einzuarbeiten :sad:. Daher steige ich da nicht so durch...

dizzy 24. Mai 2004 20:36

Re: Mathem. Parser -- bitte testen
 
Zitat:

Zitat von Luckie
Irgendwie kann ich das Teil nicht kompilieren:
Zitat:

Zitat von QMath
[Error] QMath.pas(110): Undeclared identifier: 'x'

:gruebel:
Delphi-Quellcode:
procedure Quat2Comp(const Q : TQuat; var C1, C2 : TComplex);
asm
  fld Q.x; // <- Zeile 110

Tja, das ist der selbe Schmarn wie bei Christian :?
Ich hab echt keine Ahnung, was das soll. Mirage konnte es mit D6 ja ohne Probs kompostieren (btw: danke Robert_G für dieses Wort!) Ob Borland da innerhalb ein und der selben Version etwas grundlegendes geändert hat :gruebel:
Das Problem könnte aber mit der Zeit verschwinden, da ich plane, wenn der Parser mal so weit fertig ist, ihn in eine DLL zu verpacken. Dann braucht keiner mehr zu kompilieren :mrgreen:

@Alex: :shock: ...uhmm, ich werd's mal versuchen! (Ob ich DA noch durchsteige *g*) Was die Assemblerteile angeht: (Mehr als da benutzt kann ich auch nicht ;) ) und in "QMath2.pas" sind exakt die selben Funktionen nochmal in DL-Klartext.
Aber stimmt... da müssen auf jeden Fall noch ein paar mehr Kommentare rein. Sonst blicke ich das Teil in 1/2 Jahr selber nicht mehr. Sind ein paar Kniffe drin :zwinker:
(Dürfen die Kommentare auch englisch sein? Ich mach's immer lieber glech international *g*)

\\edit: btw:
AMD 2500+ Real: 1833 MHz
AMD 3000+ Real: 2167 MHz (hab ich fast, da FSB auf 195MHz getuned ;) 200 ging net mehr... )

Robert_G 24. Mai 2004 20:38

Re: Mathem. Parser -- bitte testen
 
Da ich heute wohl kein MoBo mehr kriege :roll: habe ich deinen Parser an meinem Rechner (und dem eines bemitleidenswerten Kollegen :roll: ) im Büro getestet:


AMD mit 1,737 Ghz (512MB 0815 Infineon RAM 167Mhz)
---------------------------
Cqtest
---------------------------
Test1: 1737265161
---------------------------
OK
---------------------------
1037.93
1642.14
4074.47
7706.28

Intel P4e mit 2,992 Ghz (HT aktiviert, interessiert die Testapp aber natürlich nicht ;) )
(1GB 0815 Infineon RAM 200Mhz)
---------------------------
Cqtest
---------------------------
Test1: 54376471
---------------------------
OK
---------------------------
44415.3
78103.4
192749
395425

Ich habe bei beiden Systemen die Zeiten eingetragen, danach habe ich mir einfach jeweils vor der Berechnung die CPUFrequenz per ShowMessage anzeigen lassen.
Bei jedem Test wurde auf dem jeweiligen System der gleiche Wert gefunden.

Mich interessiert dabei nur eins, seit wann hat eine 1,7ghz Möhre eine 32-mal höhere Taktfrequenz als ein 3Ghz P4???
Fazit: Deine App mag den P4 nicht und ich habe wohl doch keinen Quantencomputer. :cry:

Luckie 24. Mai 2004 20:41

Re: Mathem. Parser -- bitte testen
 
Äh, wie ermittelst du die Zeiten? Mit GetTickCount wird das nichts. Da du dann auch die Zeiten mit misst, die dein Thread im Ruhezustand ist. Und wenn da noch ein paar Prozesse laufen, kann das schon mal etwas länger dauern, bis du wieder dran bist. Besser ist da schon GetThreadTimes. Eventuell wäre es auch sinnvoll die reinen Taktzyklen der CPU zu messemn, dann bist du systemunabhängig.

dizzy 24. Mai 2004 20:48

Re: Mathem. Parser -- bitte testen
 
Zitat:

Zitat von Robert_G
(HT aktiviert, interessiert die Testapp aber natürlich nicht ;) )

:?: Warum interessiert es ihn nicht!? Ich dachte immer HT sei sowas wie das AllSchnellMittel...

Zitat:

Zitat von Robert_G
Mich interessiert dabei nur eins, seit wann hat eine 1,7ghz Möhre eine 32-mal höhere Taktfrequenz als ein 3Ghz P4???
Fazit: Deine App mag den P4 nicht und ich habe wohl doch keinen Quantencomputer. :cry:

[/quote]
:?: :?: :?: DAS ist mal interessant! Es gibt jetzt 3 Möglichkeiten:
  • Die Performancemessung ist für den P4 nicht geeignet (Gruß an Hagen; von dem ist die meine ich zu glauben ;) )
  • Die asm-optimierten functions sind für nen P4 alles andere als optimiert :? (wie siehts mit der "QMath2.pas" aus? )
  • Intel hat Mist gebaut :mrgreen:

Ich glaub, ich muss mir doch mal bei Zeiten nen P4 zulegen. Allein schon für solche Tests *geldbörsegaaanzfesthalt*


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz