| 
| Autor | Beitrag |  
| Ralf Jansen 
          Beiträge: 4708
 Erhaltene Danke: 991
 
 
 VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
 
 | 
Verfasst: Do 23.01.14 13:44 
 
	  | Zitat: |  	  | Ich rate jetzt mal : 8 GB Arbeitsspeicher  | 
 Intensiv nutzen und viel nutzen ist nicht das gleiche    Die Zahl in Klammern könnte interessanter sein.
 Wobei ich eher glaube das sich die Datenmengen in Grenzen halten sollte so das alles im CPU Cache passiert. |  |  |  
| Hochhaus  
          Beiträge: 662
 Erhaltene Danke: 8
 
 Windows 7
 Delphi XE2
 
 | 
Verfasst: Do 23.01.14 14:30 
 
8 Gb Hauptspeicher müsste problemlos reichen. Die Frage ist, wie sie getaktet sind - und mit dem Prozessor zusammenarbeiten. Das Programm nutzt ca. 10 - 15 MB Hauptspeicher - es passiert also nicht alles im Cache. Denke ich.
 Hochhaus
 |  |  |  
| papa69 
          Beiträge: 79
 Erhaltene Danke: 23
 
 Win 10, Ubuntu
 C#, Java, C
 
 | 
Verfasst: Do 23.01.14 14:36 
 
so, habe auch mal "getestet":
 mehrere Versuche: meistens 5,741 sec
 schnellstes Ergebnis nach 5,726 sec.
 
 Prozessor: Inter Core 2 Quad8200
 RAM: 6GB
 
 Prozessor-Auslastung war ziemlich "gleichmäßig", wobei aber Kern 3 "mehr" zu tun hatte. Mittlere Auslastung lag bei ca.23% (Kern 3 bei ca.35%)
 _________________ Daniel Bauer
 ... fatal ist nur, wenn sich das Licht am Ende des Tunnels als entgegenkommender ICE entpuppt ...
 Für diesen Beitrag haben gedankt: Hochhaus
 |  |  |  
| Horst_H 
          Beiträge: 1654
 Erhaltene Danke: 244
 
 WIN10,PuppyLinux
 FreePascal,Lazarus
 
 | 
Verfasst: Do 23.01.14 15:45 
 
Hallo,
 wie sieht denn der Quelltext aus?
 Wie oben geschrieben, erreiche ich mit gmp 0.077 Sekunden für 100.000 Stellen, denn 10.000 kann ich mit time nicht messen.
 
 Gruß Horst
 Für diesen Beitrag haben gedankt: Hochhaus
 |  |  |  
| Hochhaus  
          Beiträge: 662
 Erhaltene Danke: 8
 
 Windows 7
 Delphi XE2
 
 | 
Verfasst: Do 23.01.14 15:59 
 
Das Programm ist sehr rechenintensiv, es ist kein ausgeklügelter Algorithmus.
 Hochhaus
 Code:
 												| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 27:
 28:
 29:
 30:
 31:
 32:
 33:
 34:
 35:
 36:
 37:
 38:
 39:
 40:
 41:
 42:
 43:
 44:
 45:
 46:
 47:
 48:
 49:
 50:
 51:
 52:
 53:
 54:
 55:
 56:
 57:
 58:
 59:
 60:
 61:
 62:
 63:
 64:
 65:
 66:
 67:
 68:
 69:
 70:
 71:
 72:
 73:
 74:
 75:
 76:
 77:
 78:
 79:
 80:
 81:
 82:
 83:
 84:
 85:
 86:
 87:
 88:
 89:
 90:
 91:
 92:
 93:
 94:
 95:
 96:
 97:
 98:
 99:
 100:
 101:
 102:
 103:
 104:
 105:
 106:
 107:
 108:
 109:
 110:
 111:
 112:
 113:
 114:
 115:
 116:
 117:
 118:
 119:
 120:
 121:
 122:
 123:
 124:
 125:
 126:
 127:
 128:
 129:
 130:
 131:
 132:
 133:
 134:
 135:
 136:
 137:
 138:
 139:
 140:
 141:
 142:
 143:
 144:
 145:
 146:
 147:
 148:
 149:
 150:
 151:
 152:
 153:
 154:
 155:
 156:
 157:
 158:
 159:
 160:
 161:
 162:
 163:
 164:
 165:
 166:
 167:
 
 | Procedure TWurzForm.StartClick(Sender: TObject);Var I, N, P, W: LongInt;
 Begin
 
 Start.Enabled := False;
 ZeitX := GetTickCount;
 ZeitR.Text := '0,000 sec.';
 WurzEdit.Text := '';
 StelleX.Text := '0';
 Go := True;
 
 SetCursor(LoadCursor(0, PChar(idc_Wait)));
 Y := 'Wurzel.Doc';
 AssignFile(Fil, Y);
 
 Z := 0;
 Zahl    := 0.0;
 Stellen := 1000.0;
 Summe1  := 0;  Summe2   := 0;
 Q_Test  := 0;  Q_Wurzel := 0.0;
 
 For I := -1 To 2000000 Do Begin
 A[I] := 0;
 End;
 
 For I:=-2 To 4012000 Do Begin
 S[I] := 0;
 K[I] := 0;
 End;
 
 Val(Wurzel.Text, Zahl, R);
 Val(Stelle.Text, Stellen, R);
 
 N := Trunc(Stellen);
 
 If (Zahl <= 0.0) Or (Zahl >= 1000) Then Begin
 MessageDlg('Ungültige Zahl', mtError, [mbOk], 0);
 Stop.Enabled := False;
 Clear.Enabled := True;
 Exit;
 End;
 
 If (Stellen < 1) Or (Stellen > 1000000) Then Begin
 MessageDlg('Ungültige Anzahl Stellen', mtError, [mbOk], 0);
 Stop.Enabled := False;
 Clear.Enabled := True;
 Exit;
 End;
 
 P := Trunc(Sqrt(Zahl));
 
 K[-2] := Trunc((P * P)/100);
 K[-1] := Trunc((P * P)/10) - 10 * Trunc((P * P)/100);
 K[0]  := P * P - 10 * Trunc((P * P)/10);
 A[-1] := Trunc(P/10);
 A[0]  := P - 10 * Trunc(P/10);
 S[-2] := K[-2];
 S[-1] := K[-1];
 S[0]  := K[0];
 
 Q_Test   := 0;
 Q_Wurzel := 0.0;
 Q_Test   := Round(10000.0 * Zahl);
 
 If (Sqrt(Q_Test) = Trunc(Sqrt(Q_Test))) Then Begin
 Q_Wurzel := Sqrt(Q_Test)/100;
 Str(Q_Wurzel:2:4, StrZ);
 WurzEdit.Lines[0] := 'Unsinnige Vorgabe, QWurzel = ' +
 StrZ;
 Stop.Enabled := False;
 Clear.Enabled := True;
 Exit;
 End;
 
 I := 1;
 
 
 
 
 
 While (I <= N) And Go Do Begin
 
 Application.ProcessMessages;
 If (I Mod 100 = 0) Then Begin
 ZeitY := GetTickCount - ZeitX;
 ZeitReal := ZeitY / 1000.0;
 ZeitR.Text := FloatToStrF(ZeitReal, ffFixed, 6, 3) + ' sec.';
 Str(I, AnzStel);
 StelleX.Text := AnzStel;
 End;
 
 Stop.Enabled := True;
 Clear.Enabled := False;
 
 
 For W := -1 To I Do Begin
 Inc(K[W + I], 2 * A[W]);
 End;
 
 K[2 * I] := K[2 * I] + 1;
 
 
 
 
 For W := 2 * I DownTo -1 Do Begin
 Z := 0;
 While (K[W] > 9) Do Begin
 Dec(K[W], 10);
 Inc(Z);
 End;
 Inc(K[W - 1], Z);
 End;
 
 
 
 
 Summe1 := Round(1.0E06 * K[-2] + 1.0E05 * K[-1] + 1.0E04 * K[0] +
 1000.0 * K[1]);
 Summe1 := Summe1 + Round(100.0 * K[2] + 10.0 * K[3] + 1.0 * K[4]);
 Summe2 := Round(10000.0 * ZAHL);
 
 
 
 
 If (Summe1 >= Summe2) or (A[I] = 9) Then Begin
 Inc(I);
 CopyMemory(@K[-2], @S[-2], 2 * I + 3);
 End
 
 
 
 Else Begin
 Inc(A[I]);
 CopyMemory(@S[-2], @K[-2], 2 * I + 3);
 End;
 
 End;
 
 If (Not Go) Then N := I;
 ZeitY := GetTickCount - ZeitX;
 ZeitReal := ZeitY / 1000.0;
 
 If (Q_Wurzel = 0.0) Then Begin
 ReWrite(Fil);
 Writeln(Fil,'Protokoll:');
 Writeln(Fil,'__________');
 Writeln(Fil,'          ');
 Writeln(Fil,'Quadratwurzel von ',Zahl:3:4,' auf ',N,' Stellen ist: ');
 Write(Fil, A[-1], A[0], '.');
 
 For I := 1 To N Do Begin
 If (I/72) = Trunc(I/72) Then Writeln(Fil, ' ');
 Write(Fil, A[I]);
 End;
 
 Writeln(Fil, ' '); Writeln(Fil, ' ');
 Writeln(Fil, 'Ende des Protokolles.');
 CloseFile(Fil);
 ZeitR.Text := FloatToStrF(ZeitReal, ffFixed, 6, 3) + ' sec.';
 WurzEdit.Lines.LoadFromFile(Y);
 
 Stop.Enabled := False;
 Clear.Enabled := True;
 
 SetCursor(LoadCursor(0, PChar(idc_Arrow)));
 End;
 End;
 |  |  |  |  
| D.Elphi 
          Beiträge: 128
 Erhaltene Danke: 10
 
 Windows 10 Edu x64
 Tokyo Starter, BlueJ
 
 | 
Verfasst: Do 23.01.14 17:33 
 
AMD FX-6100 (6x 3,3 GHz), 8 GB RAM: 5,156 Sekunden
MfG
 D.Elphi
 Für diesen Beitrag haben gedankt: Hochhaus
 |  |  |  
| Jens01 Hält's aus hier
 Beiträge: 9
 Erhaltene Danke: 3
 
 
 
 
 | 
Verfasst: Do 23.01.14 20:25 
 
i7-4770k, 3,5GHz, 8GB-Ram, Win8-64
--> 3,500 sec
 
 gruss Jens
 Für diesen Beitrag haben gedankt: Hochhaus
 |  |  |  
| D.Elphi 
          Beiträge: 128
 Erhaltene Danke: 10
 
 Windows 10 Edu x64
 Tokyo Starter, BlueJ
 
 | 
Verfasst: Do 23.01.14 21:15 
 
Irgendwie funktioniert das bei mir mit den Nachkommastellen nicht... |  |  |  
| Hochhaus  
          Beiträge: 662
 Erhaltene Danke: 8
 
 Windows 7
 Delphi XE2
 
 | 
Verfasst: Do 23.01.14 21:24 
 
	  |  D.Elphi hat folgendes geschrieben  : |  	  | Irgendwie funktioniert das bei mir mit den Nachkommastellen nicht... | 
 Was funktioniert nicht ? Wenn ein Spruch kommt "Dateizugriff verweigert" muss das Programm in einem Verzeichnis laufen, das Schreibzugriff bietet.
 Hochhaus |  |  |  
| D.Elphi 
          Beiträge: 128
 Erhaltene Danke: 10
 
 Windows 10 Edu x64
 Tokyo Starter, BlueJ
 
 | 
Verfasst: Do 23.01.14 21:37 
 
Nein, ich bezog mich auf dieses Problem:
   MfG
Einloggen, um Attachments anzusehen!
 Für diesen Beitrag haben gedankt: Hochhaus
 |  |  |  
| Hochhaus  
          Beiträge: 662
 Erhaltene Danke: 8
 
 Windows 7
 Delphi XE2
 
 | 
Verfasst: Fr 24.01.14 07:15 
 
Ok. Das ist ein arger Bug. Ich werde ihn bald flicken. In der Schweiz gibt man einen Dezimalpunkt ein und KEIN Komma. Dann funktioniert alles normal.
 
 Hochhaus
 |  |  |  
| Tilo 
          Beiträge: 1098
 Erhaltene Danke: 13
 
 Win7 geg. WInXP oder sogar Win98
 Rad2007
 
 | 
Verfasst: Fr 24.01.14 07:52 
 
Mann ist mein System veraltet (Laptop Okt2006!)
 CPU: T2300 auf 1,6 GHz (Dual Core, 32 Bit, "Yonah"
 4 Gb Ram
 Win 7 32bit
 
 Zeiten:
 a) 11,980 sec (dynamisch gedrosselte Leistung),
 b) 10,921 sec (max Performance)
 |  |  |  
| Th69 
          
  Beiträge: 4800
 Erhaltene Danke: 1059
 
 Win10
 C#, C++ (VS 2017/19/22)
 
 | 
Verfasst: Fr 24.01.14 10:50 
 
Eigentlich kommt mir mein Notebook (hier auf der Arbeit) immer total träge vor, aber die Zeiten gehen ja: 4,586 sec (bestes: 4,508 sec - langsamstes: 4,712 sec - insg. ca. 10mal hintereinander getestet).
 CPU: i5 (Dual Core, je 2,67 GHz)
 RAM: 4 GB
 Win 7 64bit
 |  |  |  
| Martok 
          Beiträge: 3661
 Erhaltene Danke: 604
 
 Win 8.1, Win 10 x64
 Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
 
 | 
Verfasst: Fr 24.01.14 12:52 
 
	  |  Tilo hat folgendes geschrieben  : |  	  | Mann ist mein System veraltet (Laptop Okt2006!) | 
 Oh, ich hab nicht den ältesten    CPU: AMD Turion 64 X2 Mobile TL-58 (Tyler) (@1.9GHz)
 RAM: 4 GB PC2-6400 (400 MHz)
 Win XP 32bit
 11,234 sec._________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
 |  |  |  
| Hochhaus  
          Beiträge: 662
 Erhaltene Danke: 8
 
 Windows 7
 Delphi XE2
 
 | 
Verfasst: Fr 24.01.14 16:41 
 
	  |  D.Elphi hat folgendes geschrieben  : |  	  | Nein, ich bezog mich auf dieses Problem: [Bild: Bild]
 MfG
 | 
 Müsste hiermit behoben sein ! Siehe Beilage.
Einloggen, um Attachments anzusehen!
 Für diesen Beitrag haben gedankt: D.Elphi
 |  |  |  
| OlafSt 
          Beiträge: 486
 Erhaltene Danke: 99
 
 Win7, Win81, Win10
 Tokyo, VS2017
 
 | 
Verfasst: Fr 24.01.14 18:11 
 
Mein schon recht betagtes Notebook hier ist doch nicht der langsamste    AMD Phenom II N830, 2.1GHz Triple-Core, Einstellung "Performance"
 8,518 sec.
 Einstellung "Pwr Save"
 17,722 sec._________________ Lies, was da steht. Denk dann drüber nach. Dann erst fragen.
 |  |  |  
| D.Elphi 
          Beiträge: 128
 Erhaltene Danke: 10
 
 Windows 10 Edu x64
 Tokyo Starter, BlueJ
 
 | 
Verfasst: Sa 25.01.14 11:30 
 |  |  |  
| Yankyy02 
          Beiträge: 138
 Erhaltene Danke: 21
 
 Win 11 x64
 C# (VS 2022 - Rider)
 
 | 
Verfasst: Sa 25.01.14 13:11 
 
Hallo, hab mal getestet ....
 mehrere Durchläufe 5,203 sec., 5,266 sec., 5,250 sec.
 
 System: Win 8.1
 CPU: AMD Athlon x4 640 3.00GHz
 RAM: 8 GB
 
 hoffe es hilft weiter ....
 
 MfG
 |  |  |  
| Xion 
          
  Beiträge: 1952
 Erhaltene Danke: 128
 
 Windows XP
 Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse),  C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
 
 | 
Verfasst: Sa 25.01.14 14:42 
 
Also zunächst finde ich es absolut faszinierend, wie wenig sich die letzten10 Jahre bezüglich der Rechenleistung getan hat.
 Ich habe hier einen Pentium M (1.6GHz) (Thinkpad T41, also irgendwann zwischen 2003 und 2005 produziert) vor mir, und der braucht gut 11 Sekunden. Gerade mal doppelt so lange wie ein moderner Prozessor (ohne Multithreading natürlich, was oft ohnehin nicht möglich ist). Faktor 2 ist aber meist problemlos aus dem Algorithmus rauszuholen.
 Leider muss mich mein T41 bald verlassen, weil ich ein Notebook mit voller OpenGL 1.4 Unterstützung brauche     	  |  Hochhaus hat folgendes geschrieben  : |  	  | Dies hilft, den besten Mathe-Rechner ausfindig zu machen. | 
 Diese Frage finde ich daher reichlich sinnlos. Mathe-Rechner? Wenn du deinen Code änderst, kann es schon wieder ganz anders aussehen. Dann ist z.B. plötzlich der Cache der Flaschenhals (dann kann mein Notebook noch viel besser mithalten    ). Und selbst wenn du den selben Code in C++ oder Java schreibst, kann es komplett anders sein._________________a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius) |  |  |  
| Hochhaus  
          Beiträge: 662
 Erhaltene Danke: 8
 
 Windows 7
 Delphi XE2
 
 | 
Verfasst: Sa 25.01.14 16:14 
 
	  |  Xion hat folgendes geschrieben  : |  	  | Also zunächst finde ich es absolut faszinierend, wie wenig sich die letzten 10 Jahre bezüglich der Rechenleistung getan hat. | 
 Das ist so. Einzig die Änderung vom Pentium 4 zum Core 2 Duo hat einen wesentlichen Performance-Schub gebracht. Mein Programm ist sicher nicht eine Referenz, um den besten Mathe-Rechner zu finden. Einzig ein Anhaltspunkt. Wenn man mehr wissen will, muss man einen Benchmark-Test laufen lassen, der sowohl Prozessor, Speicher, Graphikkarte und Festplatte testet.
 Hochhaus |  |  |  |