Grundsätzlich könnte man den Code interpretieren und zählen.cloidnerux hat geschrieben:Jop, ist definitiv ein Problem moderner Betriebssysteme: Mit Intelligenter Task-Verwaltung, Resourcen-Management und Multithreading, kann man da meiner Meinung nach nicht auf einen definitiven Wert kommen, deswegen habe ich auch 10 mal das ganze gemessen, um dann ein Mittelwert finden zu können.
Dafür müssten wir einen Assembler-Interpreter nehmen/schreiben und jedem Assemblerbefehl Kosten zuweisen.
Es spielt dann keine Rolle, ob ein inc in 1 Microsekunde oder einer Sekunde abgearbeitet wird, die Kosten ist in beiden Fällen 1 Takt.
Dann ist allerdings der Punkt, dass alte CPUs für eine DIV 4-10 Takte braucht, eine moderne CPU aber nur einen Takt. Ein Goto läuft heute bei mehreren Pipes und Caches teils auf 0 Takte runter.
Hier wird es sehr schwer in C zu optimieren.
Für kombinatorische Optimierungen braucht man allerdings schon entsprechende Probleme. Das wird aber schnell so aufwendig, dass die meisten Hobby-Programmierer da nicht mehr mitkommen.
Das ist dann schnell nicht mehr klein genug. Und um hier optimieren zu können, muss man entsprechend Fachwissen haben, um Entscheidungen treffen zu können. Hier sind die Hobby-Entwickler auch schnell wieder raus.
Im Prinzip muss während des Tests nur das Multitasking abgeschaltet werden.cloidnerux hat geschrieben:Dann sollte man sich überlegen, ein solches System aufzusetzen^^
Ich hab hier sicherlich noch irgendeinen Freien Computer, auf den man ein Realtime-OS installieren kann.
Das ging unter AmigaOS.
Also wird es da wohl auch eine Möglichkeit geben, das unter Linux für den Zeitraum eines Tests abzuschalten.