Simulieren Sie eine gleichmäßige CPU-Last und Spitzen
Wie konnte ich generieren stetige CPU-Last in C#, weniger als 100% für eine bestimmte Zeit? Ich würde auch gerne in der Lage, ändern Sie die Last-Betrag nach einem bestimmten Zeitraum. Wie empfehlen Sie zu generieren auslastungsspitzen für eine sehr kurze Zeit?
InformationsquelleAutor der Frage kjv | 2010-03-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
First off, Sie müssen verstehen, dass die CPU-Auslastung ist immer ein Mittelwert über eine bestimmte Zeit. Zu jeder Zeit kann die CPU entweder funktioniert oder es ist nicht. Die CPU ist nie 40% arbeiten.
Aber wir können simulieren, eine 40% Last über sagen eine zweite, indem die CPU-Arbeit für 0,4 Sekunden und sleep-0,6 Sekunden. Das gibt eine Durchschnittliche Auslastung von 40% im zweiten.
Schneiden Sie es nach unten, um kleiner als eine Sekunde, sagen wir 100 Millisekunden Brocken sollte noch mehr geben stabile Auslastung.
Der folgenden Methode nehmen Sie ein argument, die gewünschte Auslastung und dann nutzen eine single-CPU/core bis zu diesem Grad:
Ich bin mit einem Stoppuhr hier, weil es genauer ist als die der TickCount Eigenschaft, aber Sie könnte ebenfalls verwenden, und verwenden Sie die Subtraktion zu überprüfen, ob Sie schon lange genug.
Zwei Dinge zu beachten:
Zur Beantwortung Ihrer zweiten Frage, über die änderung der Auslastung nach einer gewissen Zeit, ich schlage vor, Sie führen Sie dieses Verfahren auf einem oder mehreren threads (je nach Anzahl der Kerne) und dann, wenn Sie ändern möchten Auslastung Sie einfach aufhören solche threads und laichen neue mit dem neuen prozentualen Werte. Auf diese Weise müssen Sie nicht implementieren müssen, um thread-Kommunikation zu ändern
percentage
einem Laufenden thread.InformationsquelleAutor der Antwort Isak Savo
Nur in der Beurteilung des Isak Antwort, ich lasse hier eine einfache Anwendung für multicore:
InformationsquelleAutor der Antwort Guido Zanon
Für eine gleichmäßige Beanspruchung: Isak Savo Antwort mit einem leichten zwicken
InformationsquelleAutor der Antwort fartwhif
Jeder Zeit, die Sie haben zu setzen cpuUsageIncreaseby variable.
zum Beispiel:
1 - Cpu - % - Zunahme durch > cpuUsageIncreaseby % für eine minute.
2 - Gehen Sie bis zu 0% für 20 Sekunden.
3 - Goto step 1.
InformationsquelleAutor der Antwort