Es wäre sehr nützlich für mich, bestimmte Programme in einer Linux-Umgebung mit einer festen (niedrigeren) CPU-Taktrate auszuführen (z. B. runat 400mhz ./my-program --argument-of="my program"
um diese Taktrate zu erhalten).
Ich brauche es, um Verzögerungen zwischen den einzelnen Assembly-Anweisungen meines Programms zu erzeugen, und es würde mich nicht töten, wenn die Verzögerung nicht genau ist (z. B. wenn sie vom OS-Scheduler abhängt, wie es fast sicher sein wird).
Das Ziel ist es, die Effizienz von Algorithmen bei der Programmierung nicht so schwerer Anwendungen in der Schule sehr deutlich zu machen (eine 3-GHz-CPU macht es schwierig, langsame Algorithmen zu bemerken, die nur wenig Zeit laufen und wirklich optimiert werden könnten). Vielleicht kann es auch nützlich sein, um die Rennbedingungen in Echtzeit zu erkennen.
Kennen Sie ein solches Tool? Gibt es eine Art Dolmetscher, den ich hacken könnte, um dies zu erreichen? Kann mir gdb relativ einfach helfen? Ich denke, es kommt der Steuerung einer mir bekannten Linux-Programmausführung am nächsten.
Das Ausführen des Hole-Systems in einer VM mit CPU-Cap könnte eine weitere Option sein, da es mir die Illusion vermittelt - eine CPU mit niedrigerer Geschwindigkeit -, aber am besten einzelne Programme ausführen.
cgexec
.