# Eigener Mini Benchmark



## KingofKingzZ (18. Oktober 2010)

-----


----------



## KingofKingzZ (21. Oktober 2010)

*AW: C++ Sätze in Strings speichern*

Mein Prog. ist jetzt nach einigen Hinzufügungen (gibts das) fertig. 

Habs mal im Anhang hochgeladen. 

Wenn ihr auf (1) starten geht wird eine Berechnung durchgeführt und bis 900.000.000 gezählt. Die Variable, mit der bis 9... gezählt wird fließt dabei mit jeder Schleifenrunde mit in die Berechnung ein. 
Währenddessen wird die benötigte CPU-Zeit gemessen und daraus dann eine Punktzahl berechnet. 

So das wars auch schon grob^^. Dazu gibts nen Highscore der in 2 Dateien gespeichert wird und im Menü ausgelesen werden kann. Falls man einen neuen Highscore "schafft", wird man aufgefordert einen Nickname einzugeben. Der wird dann in der einen Datei gespeichert, die Punkte in der anderen Datei. Außerdem wird die Leistung, die man erreicht bewertet. 

Wäre toll, wenn ihr mir eure Punktzahl und euren Prozzessor + Takt geben könnt. 
Dann kann ich etwa sehen, wie das Prog. skaliert. 
Es nutzt übrigens nur 1 Kern, also sind alle gleichberechtigt 

Ich hab mit nem Phenom II X4 @ 3.6 GHz ca. 26,6 Punkte.

Edit: Die Berechnung kann auf richtig lahmen Systemen ruhig mal ein, zwei Minuten dauern, bei mir ist sie nach ca. 20-30 sec abgeschlossen.


lg KoK


----------



## bleifuß90 (21. Oktober 2010)

*AW: C++ Sätze in Strings speichern*

Hab es mal laufen lassen, nunja mein Q9550 taktet noch nicht mal hoch. Sprich der Bench lief auf 2GHz.

20.3447 Punkte


----------



## KingofKingzZ (21. Oktober 2010)

*AW: C++ Sätze in Strings speichern*

Mhmm okay, aber der Taskmanager zeigt bei dem Prozess 25% Auslastung an oder? 
Müsste ja dann eigentlich 1 Kern entsprechen. Das liegt wahrscheinlich dann daran, dass Win7 (nehme ich an hast du oder?) die Last gleichmäßig auf alle Kerne verteilt.


----------



## bleifuß90 (21. Oktober 2010)

*AW: C++ Sätze in Strings speichern*

Benutze Ubuntu 10.04 mit Wine. Also die CPU#4 wird zu 100% ausgelastet.


----------



## KingofKingzZ (21. Oktober 2010)

*AW: C++ Sätze in Strings speichern*

Kannst du den Bench auch noch einmal mit Höchstleistung laufen lassen? 
Was das hochtakten angeht bin ich im Moment ratlos, eigentlich müsste das Hochtakten ja Hardwareseitig oder vom Betriebssystem geleitet werden, wenn hohe Last anliegt. 
Wie oder was ich da umprogrammieren müsste weiß ich nicht, werde mich aber mal auf die Suche begeben.

Edit: Hab noch nen Bug entfernt, bei dem immer wenn das Prog. neu gestartet wird der eigene Highscore mit dem Standard überschrieben wird. Der Standard ist jetzt nur das 1. mal da und es kann der eigene Highscore beim nächsten Prog. start wieder ausgelesen bzw. verwendet werden. Komisch, dass mir das erst jetzt auffiel^^ 

PS: Bei mir (win7) taktet sich mein Phenom ganz normal hoch, habe deswegen extra mal das OC weggenommen und C&Q aktiviert.


----------



## bleifuß90 (21. Oktober 2010)

*AW: C++ Sätze in Strings speichern*

Habe ich getan, der Punktunterschied liegt im Komma Bereich. Hab es mehrmals laufen lassen aber unterm Strich sind es nicht mehr wie 0.5 Punkte. Die Taktstufe hab ich Softwareseitig auf Ondemand gestellt, dass bedeutet das der Prozessor sich hochtakten soll sobald Last kommt.


----------



## KingofKingzZ (21. Oktober 2010)

*AW: C++ Sätze in Strings speichern*

Okay, seltsam. 
Bei mir taktet er sich ganz normal von selbst hoch und bei mir skaliert er wunderbar mit mehr Takt. 
Mit OC auf 3.6 GHz habe ich ca. 26.6 und ohne OC, also auf 3.2GHz habe ich 23.4. 

Hab übrigens nen Bug entfernt (siehe mein vorheriger Post).


----------



## bleifuß90 (21. Oktober 2010)

*AW: C++ Sätze in Strings speichern*

Hab es mal mit der neuen Version getestet, aber gleiches Bild. Punktunterschied zwischen den drei Taktstufen liegt bei 0.1 Punkte. Ich werde es morgen mal unter Win7 testen vielleicht verhält es sich dort anders.


----------



## KingofKingzZ (21. Oktober 2010)

*AW: C++ Sätze in Strings speichern*

Okay, danke. 
Hier sind mal einige Werte von Freunden unter Win7/Vista: 

Phenom II X4 @3,6 GHz | NB @2,4 GHz: ~26.5 P
Phenom II X4 @2,0 GHz | NB @2,4 GHz: ~16.0 P
Core 2 Quad Q9550 @2,8 GHz: ~20.5 P
Core 2 Quad Q6600 @2,4 GHz: ~10.5 P
Core 2 Duo Pxxxx (mobile) @2,4 GHz: ~11.0 P

Was mich stutzig macht ist, dass der Q9550 faste doppelt so gut ist wie der Q6600. 
Und das trotz des "nur" 400 MHz höheren Taktes. Würde ja bedeuten, dass mein Prog. einen extremen Nutzen aus dem größeren L2 Cache zieht.


----------



## bleifuß90 (21. Oktober 2010)

*AW: C++ Sätze in Strings speichern*

Dein Programm weniger. Intel CPUs skalieren allgemein auf größeren Cache besser. Wenn ich jetzt den Wert des Q9550 aus deiner Liste mit meinem Vergleich ist das deckungsgleich. Ich denk mal das wird unter Win7 nicht anders aussehen, werde es aber trotzdem testen.


----------



## bingo88 (21. Oktober 2010)

*AW: C++ Sätze in Strings speichern*

Je nachdem wie die Schleife aussieht kann der Compiler da einiges machen. Da ich jetzt nicht genau weiß, wie du da rechnen lässt, kann ich dir da aber leider keine genauere Erklärung liefern


----------



## KingofKingzZ (22. Oktober 2010)

*AW: C++ Sätze in Strings speichern*

Hier die Rechnung, kompiliert mit Dev C++. 


```
do
                 {
                                   var++; 
                                   Rechnung = (27.53433*(var/(var*0.01))/6.5+(2*(64*64)))/400.504;
                 
                 } while (var!=900000000);
```

Wie gesagt, die Rechnung hat keinen Sinn, ich hab sie einfach schnell erfunden. ^^
Werde sie bei Gelegenheit gegen etwas nützliches tauschen.


----------



## bingo88 (22. Oktober 2010)

*AW: C++ Sätze in Strings speichern*

Joah, da kann man einiges in den Cache laden...


----------



## bleifuß90 (22. Oktober 2010)

*AW: C++ Sätze in Strings speichern*

so hab jetz mal dein Programm auf einen E8500 mit Win XP Pro ausgeführt.
Ergebnis 22.2Punkte.
Hier Taktet die CPU auch schön hoch.


----------



## KingofKingzZ (22. Oktober 2010)

*AW: C++ Sätze in Strings speichern*

Okay, also scheint es mit dem Hochtakten wohl an Ubuntu zu liegen. 
Allerdings hast du ja auch mit 2 GHz ~20P gehabt, wie ein Kumpel von mir mit 2,8 GHz. Evtl. ist es also auch einfach ein Auslesefehler?! 

@ bingo

Ja, aber es bringt anscheinend nur L2 Cache etwas, denn wenn ich den L3Cache-Takt (NB-Takt) meines Phenoms stark untertaktet mit stark übertaktet vergleiche ist so gut wie kein unterschied ersichtlich. 
Bei den Core 2´s hängt die Performance in erster Linie (wie man beim Vergleich Q6600 - Q9550 schön sieht) in erster Linie vom L2 ab, erst dann folgt der Takt.


----------



## bingo88 (22. Oktober 2010)

*AW: C++ Sätze in Strings speichern*

Der L3-Cache dient auch eher der Cache-Kohärenz (z. B. bei Mutlicore), ist also kein reiner Daten-Cache wie der Level-2-Cache.


----------



## KingofKingzZ (22. Oktober 2010)

Okay, gut zu wissen. 

Hats hier noch jemanden mit nem i7, würe mich noch interessieren wie der so abschneidet.


----------



## Mastermaisi777 (22. Oktober 2010)

Mein Q6600 @3,4 kommt auf ca. 14,5 Punkte.

Kannst du den ganzen Quellcode posten bzw. anhängen ? Würde mich interessieren was der Intel C++ Compiler da noch rausholen kann


----------



## KingofKingzZ (22. Oktober 2010)

Okay, wenn du willst. Poste deine Ergebnisse 

Hier der Quellcode: 



```
#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
#include <ctime>


using namespace std;

string dateiname2 ="HGSZ.z"; // Datei für Pkt 
string dateiname  ="HGSN.n"; // Datei für Name 


int Berechnung ();  //Berechnung Prüfen ob neuer HG
int Lesen (); //Highscore lesen
int Rating (); //CPU Bewerten


int main()
{                 
               int Auswahl;
               
               do
               {
               
               cout << endl;
               cout << "--------------------" << endl; 
               cout << "(1)Starten" << endl; 
               cout << "(2)Highscore einsehen" << endl;
               cout << "(3)Beenden" << endl; 
               
               cin >> Auswahl;
               
               switch (Auswahl) 
               {
                      case (1): 
                      {
                           Berechnung (); 
                      } break; 
                      
                      case (2): 
                      {
                           Lesen (); 
                      } break;
               
                      case (3): 
                      {
                           cout << "Beenden..." << endl; 
                      } break; 
                      
                      default: 
                               cout << "Falsche Eingabe!" << endl; 
               
               }
              } while (Auswahl!=3);
    return 0;                    
}     



//////////////////////////    
int Berechnung ()              //Berechnung und Prüfen ob neuer HG     
{    
                 double var=0; // Variable zum Rechnen
                 double neueZeit=0, alteZeit=0;  // aus neu - alt entsteht die nötige CPUZeit
                 double CPUTICKS; // CPUZeit die für die Berechnung nötig ist
                 double Rechnung=0; // Ergebnis der Rechnung (für Pkt nötig)
                 
                 cout << "Es wird gerechnet..." << endl;
                  
                  
                  
                 alteZeit=clock(); ////////////////////////////////////////////////////////////////
                 //////////////////////////////////////////////////////////////////////////////////      Zeit messen start
                 
                 do
                 {
                                   var++; 
                                   Rechnung = (27.53433*(var/(var*0.01))/6.5+(2*(64*64)))/400.504;
                 
                 } while (var!=900000000);
                 
                 neueZeit=clock(); //////////////////////////////////////////////////////////////////
                 ////////////////////////////////////////////////////////////////////////////////////    Zeit messen ende
                 
                 
                 CPUTICKS = neueZeit - alteZeit; 
                 double Punkte = (Rechnung/CPUTICKS) *20000.5; // Punkte berechnen
                 
                 ////////////////////////////////////////////////////////////////////// neuer HG prüfen + überschreiben oder net
                 
                 ifstream PLesen;  // HG lesen (zum prüfen ob höher)
                 PLesen.open (dateiname2.c_str(), ios_base::in);
     
                 double Highscore; 
                 
                
                 PLesen >> Highscore;
                 
                 PLesen.close();
                 
                 
                 if (Punkte>Highscore)
                 {
                 
                                       ofstream Ausgabe;  // Namen schreiben
                                       ofstream Ausgabe2; // Punkte schreiben
                 
                                       Ausgabe.open(dateiname.c_str(), ios_base::out);
                                       Ausgabe2.open(dateiname2.c_str(), ios_base::out);
                 
                 
                                       cout << endl;
                                       cout << "----------------" << endl;
                                       cout << "Neuer Highscore!" << endl; 
                                       cout << "Punkte: " << Punkte << endl;   
                                       Ausgabe2 << Punkte << endl;  
                                       Rating();
                                       cout << endl;
                    
                                       string Name; // für neuen Namen eingeben
                 
                                       cin.get(); // cin leeren

                                       cout << "Name eingeben!" << endl;
                 
                                       getline(cin,Name);
                 
                                       Ausgabe << Name << endl; 
                                     
                                       Ausgabe.close(); 
                                       Ausgabe2.close(); 
                 
                 }
                
                if (Punkte<Highscore)
                {   
                   
                   cout << endl; 
                   cout << "-----------------------------" << endl;
                   cout << "Leider kein neuer Highscore.." << endl; 
                   cout << "Punkte: " << Punkte << endl;
                   cout << "Highscore: " << Highscore << endl; 
                
                 } 
                   
                   
                   
                
                 
                 return 0; 
}
///////////////////////////


int Lesen () 
{
     ifstream HGLesen; //Namen lesen
     HGLesen.open (dateiname.c_str(), ios_base::in); 
     
     ifstream HGPLesen; //Punkte lesen
     HGPLesen.open (dateiname2.c_str(), ios_base::in);
     
      
     char Name; // für Namen auslesen
     cout << "---------------------" << endl; 
     cout << "Aktueller Highscore: " << endl;
     cout << "---------------------" << endl; 
     cout << endl;
     cout << "Name: "; 
     while(!HGLesen.eof())
     {
            HGLesen.get(Name); 
            cout << Name; 
     }
            HGLesen.close();
     
     cout << endl;
     cout << "Punkte: "; 
     
     
     double Highscore; // für Zahl auslesen
     
     HGPLesen >> Highscore; 
     
     cout << Highscore;  
  
     HGPLesen.close (); 
     
     Rating(); 
//////////////////////////////////////// 
     
    return 0; 
} 

int Rating () // Pkt bzw. CPU bewerten
{
                 ifstream PLesen; 
                 PLesen.open (dateiname2.c_str(), ios_base::in);
     
                 double Highscore; 
                 
                
                 PLesen >> Highscore;
                 
                 PLesen.close();
                 
                 if (Highscore<10)
                 {  
                    cout << endl;
                    cout << "Rating: Schlecht!" << endl;
                    cout << endl;
                 }
                 
                 if (Highscore<15 && Highscore>10)
                 {
                    cout << endl; 
                    cout << "Rating: Mittelmäßig!" << endl; 
                    cout << endl; 
                 }
                 
                 if (Highscore<20 && Highscore>15) 
                 {
                    cout << endl; 
                    cout << "Rating: Gut!" << endl; 
                    cout << endl; 
                 }
                 
                 if (Highscore<25 && Highscore>20) 
                 {
                    cout << endl; 
                    cout << "Rating: Sehr gut!" << endl; 
                    cout << endl; 
                 }
                 
                 if (Highscore<30 && Highscore>25)
                 {
                    cout << endl; 
                    cout << "Rating: Aussergewoehnlich gut!" << endl; 
                    cout << endl; 
                 }
                 
                 if (Highscore>30) 
                 {
                    cout << endl; 
                    cout << "Rating: Fantastisch!" << endl; 
                    cout << endl; 
                 }
                 
                 return 0; 
}
```


----------



## KingofKingzZ (24. Oktober 2010)

@ Mastermaisi777: Und, was ist dabei rausgekommen? 

-----------------------------

So, ich hab jetzt noch nen 2. Test hinzugefügt, der mehrere Fließkommaberechnungen (wie z.B. Sinus, Logarithmus und Wurzel) durchführt. 
Außerdem hab ich das Punktesystem überarbeitet, damit beide Tests nach dem selben Muster bewertet werden können. Deshalb kommen bei Test 1 andere Ergebnisse raus als bei der alten Version. Beide Tests dauern aufgrund von Optimierungen des Compilers weniger lange als zuvor. 

Ich habe die neue Version im Startpost angehängt. 

Mein Ergebnis:
58.68 Punkte mit meinem Phenom II @ 3,6 GHz. 

lg KoK


----------



## LosUltimos (24. Oktober 2010)

Mein Ergebnis:
59.80 mit meinen Core 2 Duo E8500 @ 3,8 Ghz.


----------



## bingo88 (24. Oktober 2010)

Scheint ja ganz gut mit der Taktrate zu skalieren...


----------



## KingofKingzZ (25. Oktober 2010)

Habe mal getestet was ich mit 2,2 GHz erreiche: 35.6 (ges), 15.6 (test1), 25.0 (test2). 
Skaliert also ganz gut.


----------



## Pyroplan (25. Oktober 2010)

jetzt fehlt nur noch multicore untersützung


----------



## KingofKingzZ (25. Oktober 2010)

Jap, werde mir das die nächsten Tage mal anschauen. 
Da ich aber im Moment relativ wenig Zeit habe, kann ich noch nicht sagen, wann es fertig sein wird


----------



## Mastermaisi777 (27. Oktober 2010)

KingofKingzZ schrieb:


> @ Mastermaisi777: Und, was ist dabei rausgekommen?



Tut mir Leid , hatte noch keine Zeit dafür , aber heute siehts nicht so schlecht aus


----------



## NCphalon (27. Oktober 2010)

Kannst ja zur Not einfach das Ergebnis mit der Anzahl der Kerne multiplizieren lassen un 10% abziehen damit glaubwürdig aussieht xD

EDIT: 53.3943


----------



## KingofKingzZ (27. Oktober 2010)

Und wenn du in den Task Manager schaust merkst du, dass nur 25% ausgelastet sind


----------



## Nomad (27. Oktober 2010)

Also ich will ja nichts sagen, aber ich glaub ich hab zuviel Punkte. 
Schaut selbst^^




			Dieser Inhalt steht nur eingeloggten Mitgliedern zur Verfügung.
        



Edit: Achja, ich heiße wirklich Nico. Nicht das mir das jetzt wer nicht glauben will.^^
Edit²: I7@ 3,8Ghz


----------



## KingofKingzZ (27. Oktober 2010)

Ne, doch das kann schon hinkommen. 
Der Test der den L2 Cache fordert (Test 1) ist bei mir mit etwa 25 Punkten abgeschlossen worden. 
Der 2. Test stresst ja die FPU, die auch in Spielen wichtig ist. Die FPU des i7 ist halt deutlich schneller als die des Phenom II oder des C2Q. Daher die hohe Punktzahl. Aber dass das gleich mal 12 Punkte ausmacht... nicht schlecht. Aber ich bin mir ziemlich sicher, dass dein Ergebnis stimmt  
Da ich bis jetzt noch keinen i7 zum testen hatte konnte ich darüber noch nichts sagen.


----------



## Nomad (27. Oktober 2010)

Ja, wie gesagt, der läuft @3,8 Ghz. Wie es auf Standardtakt ausschaut kann ich nicht sagen. Eventuell am Freitag oder Samstag, wenn ich das mal testen soll.


----------



## KingofKingzZ (27. Oktober 2010)

Okay, kannst du gerne mal machen  
Der Bench skaliert allgemein ziemlich extrem, ein Q6600 @ stock schafft bei Test 1 gerade mal 9-10 Punkte und bei Test 2 ca. 21.


----------



## Nomad (27. Oktober 2010)

Ja wie gesagt, takte ich den mal runter und dann teste ich mal.


----------



## Mastermaisi777 (27. Oktober 2010)

VS2010 + Intel C++ bringt mir knapp 3 Punkte .


----------



## Ossiracer (27. Oktober 2010)

Intel Q9400 @3GHz 49.0809 Punkte o.o
Test 1: 20.6044
Test 2: 28.4765


----------



## sirbenni1993 (27. Oktober 2010)

Ich habe 59.957 Punkte 

Q9550 @ 3,40GHz ^^


----------



## DarkMo (27. Oktober 2010)

Ph2 X4 920 @ 3,2GHz - XP x86: 59.5579 (14.469 und 21.3797)

kannst ja eventuell noch die zeiten messen ^^


----------



## totovo (27. Oktober 2010)

könntest du das programm so schreiben, dass es mehrere Kerne nutzt?

Ich weiß das es nicht ganz einfach ist, ist aber bestimmt möglich


----------



## bingo88 (27. Oktober 2010)

Klar ist das möglich, das Zauberwort heißt Threads


----------



## KingofKingzZ (28. Oktober 2010)

DarkMo schrieb:


> Ph2 X4 920 @ 3,2GHz - XP x86: 59.5579 (14.469 und 21.3797)
> 
> kannst ja eventuell noch die zeiten messen ^^





totovo schrieb:


> könntest du das programm so schreiben, dass es mehrere Kerne nutzt?
> 
> Ich weiß das es nicht ganz einfach ist, ist aber bestimmt möglich



@ Dark Mo: 

Sicher, dass es 14,1 und 21,3 waren? Das gibt zusammen ~35,4 und nicht 59.5^^ 

Heute Abend hab ich etwas Zeit, da kann ich dann noch die Zeit in (ms oder sek was wäre besser?) anzeigen lassen. Außerdem werde ich mehrere Threads verwenden, wodurch das Prog. Multi-Cores ausnutzt. Ich bin mir aber noch nicht sicher, wie ich das mache. Soll ich noch 2 weitere Tests machen und dann jeden Test auf 1 Kern laufen lassen oder einfach den selben Test auf einem weiteren Kern laufen lassen, was aber ziemlich wenig sinn machen würde, da dieser Kern dann nur belastet ist, aber eig. keinen Einfluss hat.^^ Ich kann die Rechnungen, die in den einzelnen Tests sind ja nicht aufteilen auf mehrere Kerne, das würde hier keinen Sinn ergeben. 
Was noch gehen würde, wäre wenn ich jeden Test auf 2 Kernen laufen lasse und dann den Durchschnitt aus beiden Ergebnissen nehme um so genauere Ergebnisse liefern zu können. 

Was meint ihr?


----------



## DarkMo (28. Oktober 2010)

hab nochma geschaut: ich hab die "alten" highscores abgeschrieben ^^ hab grad nochma getestet:



			Dieser Inhalt steht nur eingeloggten Mitgliedern zur Verfügung.
        

 also 34.

wegen multicore: am besten wärs vllt, wenn du noch die anzahl der kerne eintippen lässt. also das man die 1 drücken muss, dann die 4 und dann rödelts los (bei nem 4 kerner). dann erstellste soviele threads, wie angegeben wurde (vllt ne sicherung einbauen ala "nich höher wie 6" oder 8 oder so). kA wie man die kernanzahl automatisch auslesen kann *g* joa un dann 4 threads starten, die alle die selbe rechnung machen. als anzeige könnte man dann die ergebnisse pro thread aufzählen, deren gesamtpunkte und nen avg wert. da kann sich jeder seinen wert raussuchen, den er mag ^^ un die zeit vllt eher als ms oder? in ner sek kann der compi ja schon ne menge machen 

vllt konnt ich dir ja bissl anregung geben


----------



## KingofKingzZ (28. Oktober 2010)

Also der Task Manager Screen von dir sieht deshalb so aus, weil Win7 die Last eines Kerns auf alle 4 verteilt. Trotzdem kann es nicht mehr als 25% werden. 

Das mit dem MultiCore und der Zeit hab ich mir so gedacht: 

Jeder Test besitzt 4 Threads, die jeweils den Test für sich ausführen. Dabei wird die benötigte CPU-Zeit für jeden Thread gemessen und der Durchschnitt wird ermittelt. 
Dabei muss man wissen, dass die Punkte meines Benchs so gut wie immer gleich sind, auch wenn du nebenher Prime laufen lässt. Denn wenn man die "Zeit" mit clock() misst, wird nur die Zeit gemessen, die wirklich in diesem Teil gebraucht wurde, nicht die gesamte vergangene zeit, inder der Prozzi womöglich noch einige andere Dinge getan hat. 
So btt.. 
Die reale Zeit wird vom ganzen Test gemessen, ergo also allen 4 Threads. 
Die CPU-zeit wird, vorausgesetzt die Prozzis haben die selbe Architektur + Cache + Takt etc. immer etwa die selbe sein. Egal ob mit 100 oder 1 Kern. Allerdings braucht 1 Kern logischerweise mehr reale Zeit um die 4 Tests zu berechnen als mehrere Kerne. 
Dann werden die Punkte berechnet und der nächste Test steht an. 


Das bedeutet also, dass die Punkte am Ende von der CPU-Zeit und von der realen Zeit abhängen. In meinem Bench bewirkt die MultiCore Unterstützung dann eigentlich nur, dass die CPU-Zeit genauer gemessen wird, da, wie gesagt, ein Durchschnitt berechnet wird.  
Die Zeit gebe ich dann am besten in ms und in Klammern in Sek an. (Natürlich nicht in gerundeten Sek sondern als Kommazahl. 3,65 Sek ist meiner Meinung nach lesbarer bzw. es ist einfacher sich etwas darunter vorzustellen als unter 3650 ms. Aber ich werde ja beides angeben 

So, jetzt mache ich mich ans proggen^^ 

lg


Edit: 

Das mit der Kernzahl eintippen ist ne eigentlich gute Sache, aber wenn man dann mehr Threads startet als der Prozzi Kerne hat bleibt die real benötigte Zeit nicht vergleichbar. 
ggf. werde ich mir mal anschauen, wie man die kernanzahl bestimmen kann und dadurch die Threads starten.

Edit²: Warum ist dein HG 59P ? 
War der schon Standard so eingestellt? Dann hab ich ausversehn nicht die leeren HG Dateien geuploadet sondern die in denen mein HG gespeichert war^^


----------



## DarkMo (28. Oktober 2010)

joa das hab ich auch scho vermutet (mit den higscores ^^).

kernzahl eintippen war für mich eben insofern ne ganz gute lösung (vom augenschein her) weil die leute ja im performance wahn nur das beste wollen und richtige angaben machen - un eben weil ich ned weis wies automatisch geht  aber vllt kann man mit der manuellen eingabe auch schön veranschaulichen, wann zuviele threads nix mehr bringen, weil der (kommunikations...)aufwand zu groß wird ^^


----------



## LuXTuX (29. Oktober 2010)

AMD 64 X2 6000+ meldet Highscore: 59.5579


----------



## Gast XXXX (29. Oktober 2010)

Mein Q9650 @ 3,6 GHz meldet 54.3136!

@ LuXTuX schau mal auf die Punkte!


----------



## LuXTuX (29. Oktober 2010)

AMD 64 X2 6000+ unter win7 64Bit
Punkte: 48.0321

AMD Athlon II 250 3Ghz unter Ubuntu Server Kernel2.6.32 64Bit
mit dem g++ compiliert gcc 4.4.3
Punkte: 0.0189287 
mit wine 
Punkte: 71.3828


----------



## Impact (29. Oktober 2010)

Na dann will ich dir auch mal helfen 


Cpu ist der i7 860 unübertaktet
auf dem Modus Ausbalanciert


Bilder sagen ja mehr als Worte:
http://m63.img-up.net/test1nh8s.JPG



Mfg
Impact


----------



## DarkMo (29. Oktober 2010)

LuXTuX schrieb:


> AMD 64 X2 6000+ meldet Highscore: 59.5579


das sin die vorgespeicherten highscores wie wir schon rausfanden. du musst über den teilergebnissen schauen ^^ den fehler hatt ich auch schon geacht *g*


----------



## thysol (29. Oktober 2010)

Schoener Benchmark.

Hier mal mein Resultat:


----------



## KingofKingzZ (29. Oktober 2010)

So, hab jetzt den Bench 1.2 mit folgenden Neuerungen im Startpost geuploadet:

- MultiCore Unterstützung mit 4 Threads pro Test 
- Zeitmessung in Sek 
- neues Punktesystem, echte Zeit fließt mit in die Berechnung ein 


Ab Morgen bin ich dann eine Woche im Urlaub, also nicht wundern, wenn ich ab morgen nicht mehr antworte^^

Edit: Diesmal sind leere Highscore-Files dabei 

Edit²: Da C++ von Haus aus kein Multithreading unterstützt, musste ich die WIN API nehmen. Der neue Bench dürfte daher nur auf Windows laufen.


----------



## DarkMo (29. Oktober 2010)

na denn: is aber ordentlich zurück gegangen ^^ von ~34 auf ~22. aber es werden alle kerne ausgelastet.




			Dieser Inhalt steht nur eingeloggten Mitgliedern zur Verfügung.


----------



## thysol (29. Oktober 2010)

Bei mir wahr auch ein Ruckschritt an Performance zu vermerken:


----------



## KingofKingzZ (29. Oktober 2010)

Nein, da ist kein Rückschritt in der Performance. 
Wie ich oben schrieb habe ich die reale Zeit noch in die Berechnung einfließen lassen. 
Kann es aber auch wieder rausnehmen, wenn ihr wollt, aber dann bringt die Multi-Core Unterstützung nur genauere Ergebnisse. Das heißt, dass ein Einkerne genauso schnell wäre wie ein 4 Kerner - von der Punktzahl her. Da ein Ein-Kerner aber länger braucht um 4 Threads abzuarbeiten habe ich die real benötigte Zeit mit hinein genommen. Ohne die reale Zeit wird nur die benötige Anzahl an CPU Ticks gemessen - die ist bei selber Architektur, Cache und Takt bei einem Ein-Kerner genauso schnell wie bei einem Mehrkerner. 

Was ich seltsam finde ist, dass eure Benchs so schlecht abschneiden. Bei euch benötigen sie wesentlich mehr reale Zeit. Schaut mal bei mir: 




			Dieser Inhalt steht nur eingeloggten Mitgliedern zur Verfügung.
        

 

Ich werde die Zeitmessung nochmal überarbeiten und ggf. ne andere Funktion verwenden. 
Aber ich lass mir was einfallen, wie mehr Punkte mit mehr Kernen rauskommen. Nur lassen sich die einzelnen Rechnungen nicht aufteilen, daher ist das etwas schwierig^^


----------



## KingofKingzZ (29. Oktober 2010)

So, hab jetzt die Funktion timeGetTime() benutzt. 
Bei mir kommt ein leicht besseres Ergebnis raus wie vorher.  
Berichtet mir wies bei euch läuft 




			Dieser Inhalt steht nur eingeloggten Mitgliedern zur Verfügung.
        




Der neue Bench ist wieder im Anhang!


----------



## DarkMo (29. Oktober 2010)

~23 (7/15) in 35 secs (20/15). soll mein möhrchen wirklich so weit hinten liegen? ^^


----------



## KingofKingzZ (29. Oktober 2010)

Ich hab doch fast den selben Prozzi wie du (Phenom II @ 3,6) und trotzdem braucht deiner deutlich länger O.o


----------



## Gast XXXX (29. Oktober 2010)

Hier mal mit deinem MT-Benchmark.


----------



## Nomad (29. Oktober 2010)

Hmm, mit dem neuen hab ich nur noch 20.402 Punkte.


----------



## KingofKingzZ (29. Oktober 2010)

Irgendetwas scheint mit der realen Zeitmessung bei mir nicht zu stimmen. 
Ihr habt bei der Zeit vergleichbare Ergebnisse, aber bei mir ist iwie der Wurm drin :Hmm: 
warum das gerade bei mir so ist muss ich noch raus finden. 
Solange habe ich den Multi-Bench jetzt wieder mit dem alten Punktesystem hochgeladen, also ohne dass die Zeitmessung mit ein fließt. Allerdings wird die zeit trotzdem angezeigt. Die Multi-Core Unterstützung bewirkt in diesem Fall jetzt nur, dass das Ergebnis genauer Berechnet wird, da eben ein Durchschnittswert aus allen 4 Threads ermittelt wird. Die Performance müsste die selbe sein, wie beim 1-Thread Bench.


----------



## bingo88 (29. Oktober 2010)

Schau dir evtl mal die Funktion QueryPerformanceCounter an. timeGetTime ist nicht so der Brüller (Interrupt-Latenz wird erhöht, Cache-Probleme, ...). Allerdings kann QPC bei manchen verbuggten CPU-Designs Kacke liefern, besonders bei SMP/Multicore!


----------



## KingofKingzZ (29. Oktober 2010)

Alles klar, werde ich mal machen. 
Hoffentlich funktioniert das ganze dann anständig  
Aber ich bin wie gesagt ab morgen eine Woche lang weg, dann werde ich das mal testen.


----------



## Nomad (29. Oktober 2010)

Und warum hab ich nur so wenig Punkte? Kommt das Ding nicht mit SMT klar?


----------



## KingofKingzZ (29. Oktober 2010)

Hast du die 1.22 Version schon geladen? 
Dort hab ich die Abhängigkeit der Zeit erst mal wieder entfernt. D.h. dass der Bench wie vor dem Update ist, nur mit Multithreading für genauere Ergebnisse.
Ob es Probleme mit SMT gibt, kann ich dir nicht sagen. Mein prog. arbeitet mit 4 ganz normalen Threads. Wenn Windows diese Threads ungünstigerweise auf die virtuellen Kerne legt, kann es natürlich sein, dass du weniger Punkte hast. Das war ja früher auch immer das Problem, weswegen manche Spiele mit SMT weniger FPS hatten. Aber eigentlich ist das Problem schon lange behoben. Ich kann da glaube ich auch nichts machen, Windows teilt die Threads zu.


----------



## Mastermaisi777 (29. Oktober 2010)

Hier mal meine Werte , 200Mhz bringen ca. 1,3-1,4 Punkte mehr.

Könnte ich den Source-Code haben um mit Intel C++ nochmal zu testen ?


----------



## Nomad (30. Oktober 2010)

Jetzt hab ich immerhin 32k^^ Aber bei Rating: Mittelmäßig.


----------



## Mastermaisi777 (31. Oktober 2010)

Das schlägt keiner


----------



## Gast XXXX (31. Oktober 2010)

Hier nochmal mein Q9650 @ 3,6 GHz mit Version 1.22


----------



## KingofKingzZ (24. November 2010)

So, nach einiger Zeit hab ich mal wieder was kleines Programmiert und mich mal an 3D rangewagt. 
Warum mein alter "Bench" mit mehreren Threads so arge Probleme hatte, weiß ich immer noch nicht 

Beim neuen Mini-Bench wird eine Wasserfläche gerendert und 10 Sek lang die Avg. FPS gemessen. 

Hier noch ein Screen:  



			Dieser Inhalt steht nur eingeloggten Mitgliedern zur Verfügung.
        



Ich habe ~ 77 FPS. Das Ergebnis hängt übrigens hauptsächlich von der CPU ab, da sehr viele Berechnungen anfallen, die auf der CPU erledigt werden müssen. Der Bench nutzt übrigens wieder mal nur 1 Kern, da ich die Berechnungen nur sehr umständlich auf mehrere Kerne aufteilen kann, sodass sogar ein Performance Nachteil entsteht. 

*Lasst euch nicht vom Konfig-Dialog am Anfang verwirren, da muss ich bei Zeiten mal nen benutzerfreundlicheren machen^^ 
Wichtig ist nur, dass ihr "Fenstermodus" auswählt und "VSync" abschaltet. Dinge wie MSAA oder höhere Auflösungen haben die Performance bei mir kaum beeinflusst und lassen es auch nicht unbedingt schöner aussehen. Also alles andere einfach ignorieren. 
*


Habe das ZIP Archiv wieder in den Anfangspost eingefügt.


lg KoK


----------



## bingo88 (24. November 2010)

Habe ich da David Scherfgens TriBase-Engine enttarnt?


----------



## KingofKingzZ (24. November 2010)

Jap steht ja auch in der Txt, die beiliegt, dass die TriBase von ihm ist. 
Habe etwas rum experimentiert, da ist dann das rausgekommen


----------



## bingo88 (24. November 2010)

KingofKingzZ schrieb:


> Jap steht ja auch in der Txt, die beiliegt, dass die TriBase von ihm ist.
> Habe etwas rum experimentiert, da ist dann das rausgekommen


Ist ja auch ein sehr gutes Buch zu dem Thema, habe damals ebenfalls damit angefangen


----------



## KingofKingzZ (24. November 2010)

Das stimmt, hatte nur zu beginn Probleme mit der TriBase.
Musste alles neu kompilieren und ein paar #defines einfügen, damit hat es dann fast geklappt.
Konnte das Kapitel über D3D ohne die Engine leider nur theoretisch durchnehmen, da der Code zur Initialisierung veraltet war und teils nicht funktionierte.


----------

