cpu belasten

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von Mad Andy.

    alles was der pc macht läuft über den cpu, ...... also nimm einfach ne schleife und rechne in jedem durchgang irgendwas gaaaaaaaaaaaaanz groooooooooooooooßes aus ;)
    (...oder nimn batchprogramm und lass es immer wieder ein bild kopieren und anschließend löschen, ..natürlich auch in der schleife...
    Hi!

    In welcher Sprache du die CPU belastest ist relativ egal, wird sowieso alles in die Maschinensprache übersetzt. Du brauchst pro Kern und pro virtuellen Kern (Hyper Threading) einen Thread. Welche Rechenoperation du ausführst, bestimmt, welcher Teil der CPU belastet wird, was in Sache Erwärmung / Stromverbrauch auch Unterschiede machen kann.

    Es gibt mehrere kostenlose Belastungsprogramme im Internet, z.B. CPU burn-in, die mehrere Instruktionen, somit mehrere Teile der CPU, belasten. Pro Kern und virtuellen Kern startest du das Programm einfach ein mal.

    Edit: zu beachten: kein Festplatten-Zugriff (weil langsam)! Und RAM ist langsamer als der interne Cache, sollte aber auch in Eigen-Entwicklung nicht auffallen, da der Cache idR. intelligent verwendet wird.
    Hi!

    Ich bin leider kein 386er-Freak, aber ich weiß, dass das OS sich um die Leistungsverteilung zwischen den Applikationen kümmern muss, somit muss das OS / der Kernel vermutlich auch die Aufteilung auf die Kerne vornehmen. Also ich gehe davon aus, dass das bei nem eigenen Kernel nen ganzes Stück ASM-Code ist. :(
    Was DOS angeht, kann ich dir nicht weiter helfen, das war deutlich vor meiner Zeit, wir haben aber auch "ältere Hasen" hier im Board :D
    DOS ist zwar noch aus meiner Zeit, jedoch ist das DOS unter Windows sicher nicht mehr das selbe wie früher. DOS unter Windows, also die Commando Console ist ja im Grunde nur ein simuliertes DOS, da Windows ja mittlerweile nicht mehr DOS Basiert ist. Es ist also eine reine Application die läuft. Demnach denke ich wenn sie zuviel beansprucht wird Windows ihre Aufgaben auch auf die Kerne aufteilen.
    Wenn du noch eine alte Windows 98 Startdiskette hast und dort dein DOS startest wird es mit angrenzender Wahrscheinlichkeit NICHT den zweiten Kern ansprechen können, wenn dass stimmt was Mad Andy sagt, dass die Aufteilung vom OS gemanaged wird.

    Ich leg mich jedoch nicht drauf fest, ich habe mich nie wirklich mit sowas beschäftigt und das ist nur aus meinem langjährigen PC Wissen für mich logisch zusammen gefasst. Sollte es nicht stimmen lasse ich mich natürlich gern eines besseren belehren.

    tobikubi schrieb:

    das Belasten sollte auf assembler ebene stattfinden, alo minnimle opertoren vorhanden!


    wollte ich nur mal sagen, dass ich wohl kaum ein thread verwaltungssystem schreiben werde, nur um von diskette dann mein programm zu starten, welches belastet ;)

    aber würden endlosschleifen, bzw eine einzige ausreichen, die z.B. immer nur 9*9 rechnet?
    Hat das Vorhaben denn einen tieferen Sinn?
    Zum Thema:
    Mach am Besten in einem Schleifendurchgang folgendes:

    1.: Integer -> I = 17 + 2
    2.: Double -> D = 3.1415926535897932 / 2.71821828 ':P Pi / e
    3.: String -> S = "Hahahahaha" & "hihi" & "Hoho" & Str(I) 'Str() sollte besonders gut belasten.

    Ob es einen "Vorteil" gegenüber der einzeiligen Endlosschleife hat, kann ich nicht sagen.
    @ progglord: das macht dir nur den Cache voll ...

    @ tobikubi: das würde nur den Integer-Teil der ALU belasten

    @ Fathone: Strings werden per memcopy zusammenkopiert. Das ist also quasi ausschließlich RAM-Belastung - außer man verwendet die MMX-Erweiterung dafür.

    Sinn: Stabilitäts- und Temperaturüberwachung, nehm ich mal an.