App installieren
How to install the app on iOS
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
AMBiX Benchmarks
- Ersteller i_hasser
- Erstellt am
Hi
So langsam schreitet die D-Version von AMBiX jetzt vorran und in nächster Zeit werd ich da wieder ordentlich weitermachen.
Bisher hab ich mir die Benchmark Module immer selber ausgedacht - aus den Programmierwettbewerben sind zb. so einige Algorithmen eingeflossen (bisher alle Primzahlalgs, in D ist auch mein neuester drinnen - meine beiden Sortieralgs sollen auch Einzug halten) aber so extrem viel kommt da auch nicht zusammen (4 Primzahlalgs, 2 Sortieralgs, Whet/Dhrystone, vielleicht den Fibonacci... macht 9 Benchmarks).
Die anderen Algorithmen in AMBiX C sind eher einfach gestrickt, und daher nicht ganz so allgemein aussagekräftig.
Tja - und falls ihr Lust habt und/oder mal irgendwann einen etwas komplexeren Algorithmus für irgend eine Sache geschrieben habt und den in AMBiX einbringen wollt - immer her damit .
Es gibt natürlich einige Bedingungen von Rechts wegen - bitte nur Source der unter der GPL oder einer anderen OpenSource Lizenz steht (was weis ich, LGPL, die BSD Lizenz... also was ich frei verwenden kann).
Vorraussichtlich werde ich den Source zu AMBiX86 D veröffentlichen. Natürlich werdet ihr (wenn ihr wollt) auch bei jedem Benchmarkstart namentlich genannt .
E: Ach ja, es wäre ganz toll wenn ihr die Algorithmen auf das AMBiX Benchmark Module-Format anpassen könntet.
Die Specs werd ich hier schreiben sowie Vorschläge kommen, es ist aber ziemlich einfach. Der Benchmark muss in C++ vorliegen und besteht aus einer Klasse, in der ihr praktisch machen könnt was ihr wollt.
So langsam schreitet die D-Version von AMBiX jetzt vorran und in nächster Zeit werd ich da wieder ordentlich weitermachen.
Bisher hab ich mir die Benchmark Module immer selber ausgedacht - aus den Programmierwettbewerben sind zb. so einige Algorithmen eingeflossen (bisher alle Primzahlalgs, in D ist auch mein neuester drinnen - meine beiden Sortieralgs sollen auch Einzug halten) aber so extrem viel kommt da auch nicht zusammen (4 Primzahlalgs, 2 Sortieralgs, Whet/Dhrystone, vielleicht den Fibonacci... macht 9 Benchmarks).
Die anderen Algorithmen in AMBiX C sind eher einfach gestrickt, und daher nicht ganz so allgemein aussagekräftig.
Tja - und falls ihr Lust habt und/oder mal irgendwann einen etwas komplexeren Algorithmus für irgend eine Sache geschrieben habt und den in AMBiX einbringen wollt - immer her damit .
Es gibt natürlich einige Bedingungen von Rechts wegen - bitte nur Source der unter der GPL oder einer anderen OpenSource Lizenz steht (was weis ich, LGPL, die BSD Lizenz... also was ich frei verwenden kann).
Vorraussichtlich werde ich den Source zu AMBiX86 D veröffentlichen. Natürlich werdet ihr (wenn ihr wollt) auch bei jedem Benchmarkstart namentlich genannt .
E: Ach ja, es wäre ganz toll wenn ihr die Algorithmen auf das AMBiX Benchmark Module-Format anpassen könntet.
Die Specs werd ich hier schreiben sowie Vorschläge kommen, es ist aber ziemlich einfach. Der Benchmark muss in C++ vorliegen und besteht aus einer Klasse, in der ihr praktisch machen könnt was ihr wollt.
PuckPoltergeist
Grand Admiral Special
So, ich grab den Thread hier nochmal aus. AMBiX arbeitet zur Zeit ja unter DOS, weil wegen Genauigkeit der Messungen. Ich hatte die Frage in einem anderen Thread schonmal gestellt, bis jetzt aber noch keine Antwort erhalten: Wie sieht es aus, wenn unter Linux der Realtime-Scheduler genutzt wird? Reicht der für genügend genaue Messungen aus?
Hab ich noch nicht probiert. Könnte sein, dass es geht, aber der Benchmark dauert dann deutlich länger, weil die Teilmessungen der Genauigkeit wegen eben öfters gemacht werden müssen.
Das Ziel müsste einfach sein, das komplette System mit dem Benchmark zu blockieren - geht das mit dem Realtime Scheduler? Denn die Zeit muss per TimeStampCounter gemessen werden (die anderen Zeitmessungen sind zu ungenau, clock hat eine Granularität von ~10ms oder so), und der TSC misst die Gesamtzeit und nicht die Prozesszeit.
Das Ziel müsste einfach sein, das komplette System mit dem Benchmark zu blockieren - geht das mit dem Realtime Scheduler? Denn die Zeit muss per TimeStampCounter gemessen werden (die anderen Zeitmessungen sind zu ungenau, clock hat eine Granularität von ~10ms oder so), und der TSC misst die Gesamtzeit und nicht die Prozesszeit.
PuckPoltergeist
Grand Admiral Special
Das komplette System kannst du damit nicht blockieren, der Kernel macht weiter sein Ding. Sowas wirst du nur hinbekommen, wenn du den Benchmark in den Kernel verlagerst, und dort die Interrupts deaktivierst. Ob das so sinnvoll ist, steht dann aber auf einem anderen Blatt.
Mit dem Realtime Scheduler kannst du aber alle anderen Prozesse blockieren, so dass nur der Benchmark läuft. Natürlich immer vorausgesetzt, du hast dann nicht noch einen RT-Prozess, der evtl. sogar ne höhere Priorität hat. Genauer bekommst du es auf Linux jedenfalls nicht hin, solange du nicht wirklich in den Kernel gehst.
Mit dem Realtime Scheduler kannst du aber alle anderen Prozesse blockieren, so dass nur der Benchmark läuft. Natürlich immer vorausgesetzt, du hast dann nicht noch einen RT-Prozess, der evtl. sogar ne höhere Priorität hat. Genauer bekommst du es auf Linux jedenfalls nicht hin, solange du nicht wirklich in den Kernel gehst.
Gibts vielleicht noch eine Möglichkeit die verbrauchte Prozess-Zeit genau zu messen? clock() ist wie gesagt völlig ungeeignet. Der Interrupt Timer den ich unter Dos benutze wenn die CPU keinen TSC bietet (alles bis inclusive 486er, dazu Cyrix 6x86/L) hat immerhin eine Auflösung von 1.2MHz, also eine Granularität von 0.83µs. clock() ist eben Faktor ~10'000 ungenauer, und damit schlicht unbrauchbar.
PuckPoltergeist
Grand Admiral Special
Muss ich mal schauen. Es gibt auf jeden Fall die Möglichkeit, die Rechenzeit in Taktzyklen genau zu messen. Bringt allerdings einen gewissen Overhead mit rein.
Na in Taktzyklen ist ja der TSC, der macht ja nix anderes (beim Init der CPU bei Systemstart wird der auf 0 gesetzt und dann mit jedem Takt eins hoch gezählt). Dummerweise ist es der CPU eben wurscht, welcher Prozess gerade rechnet, der TSC wird auch bei anderen Prozessen hochgezählt.
PuckPoltergeist
Grand Admiral Special
Du kannst das meines Wissens nach Prozess-genau accounten. Muss nochmal nachsehen, wie das genau ging.
edit: Jupp, OProfile ist dein Freund. So ich da jetzt nix falsch verstanden habe, kannst du da bis hin zu Thread-Granularität profilen.
edit: Jupp, OProfile ist dein Freund. So ich da jetzt nix falsch verstanden habe, kannst du da bis hin zu Thread-Granularität profilen.
Zuletzt bearbeitet:
Ähnliche Themen
- Antworten
- 0
- Aufrufe
- 354K
- Antworten
- 0
- Aufrufe
- 234K