7
votes

C #: Créer une utilisation de la CPU au pourcentage personnalisé

Je cherche à tester la réactivité du système, etc. Sur quelques machines dans certaines conditions d'utilisation de la CPU. Malheureusement, je ne peux créer que 100% d'utilisation (boucle infinie) ou pas assez d'utilisation de la CPU (j'utilise C #).

Y a-t-il un moyen, dans une approximation approximative, comme d'autres tâches sont également exécutées sur le système, afin de créer une utilisation de la CPU artificiellement à 20, 30, 40% (etc.) étapes?

Je comprends qu'il existe des différences entre les systèmes, évidemment, à mesure que les CPU varient. Il s'agit davantage des algorithmes / des idées sur des calculs intensives de la CPU personnalisables qui créent une utilisation suffisante sur une CPU actuelle sans le maximiser que je peux les modifier alors de l'ajuster pour créer le pourcentage souhaité.


0 commentaires

6 Réponses :


0
votes

pas fait cela - mais vous pouvez essayer de travailler sur les threads hiérarchisés dans plusieurs programmes.


0 commentaires

0
votes

Lorsque vous avez essayé d'utiliser le sommeil, avez-vous fait comme ça ou simplement mettre le sommeil à l'intérieur de la boucle? Je pense que cela fonctionnera. XXX


0 commentaires

4
votes

Vous pouvez ajouter une minuterie filetée qui se réveille sur un intervalle et que certains fonctionnent. Puis modifier l'intervalle et la quantité de travail jusqu'à ce que vous approchez de la charge souhaitée.

    private void button1_Click(object sender, EventArgs e)
    {
        m_timer = new Timer(DoWork);
        m_timer.Change(TimeSpan.Zero, TimeSpan.FromMilliseconds(10));
    }

    private static void DoWork(object state)
    {
        long j = 0;
        for (int i = 0; i < 2000000; i++)
        {
            j += 1;
        }
        Console.WriteLine(j);
    }


0 commentaires

5
votes

Ceci alors? XXX

Vous pouvez utiliser des nombres plus petits pour obtenir une charge plus stable ... tant que le rapport est ce que vous voulez. Cela n'utilise qu'un noyau que cependant, vous pourriez donc avoir à le faire dans plusieurs threads.


0 commentaires


1
votes

Voici une fonction qui utilise tous les processeurs / noyaux disponibles à un pourcentage personnalisable et peut être annulé à tout moment par le code d'appel. XXX

EXEMPLE D'UTILISATION: < Pré> xxx

résultat:

usage de la CPU


0 commentaires