Heim > Backend-Entwicklung > C++ > Wie viel langsamer sind C#-Ausnahmen als Rückgabecodes?

Wie viel langsamer sind C#-Ausnahmen als Rückgabecodes?

Susan Sarandon
Freigeben: 2025-01-26 12:11:09
Original
469 Leute haben es durchsucht

How Much Slower Are C# Exceptions Than Return Codes?

Der Leistungsaufwand des Ausnahmebehandlungsmechanismus in C# ist nicht signifikant, wenn der Stapel flach ist, aber sein Leistungsverlust ist dennoch erwähnenswert.

Eine aktuelle Studie hat anhand eines Testprogramms gezeigt, dass die Verarbeitung einer Million Ausnahmen etwa 29914 Millisekunden dauert, was etwa 33 Ausnahmen pro Millisekunde entspricht. Dennoch ist die Verwendung von Ausnahmen anstelle von Rückkehrcodes in den meisten Fällen effizient genug.

Es ist jedoch wichtig zu beachten, dass Ausnahmen mindestens 30.000 Mal langsamer behandelt werden als Rückkehrcodes. Darüber hinaus handelt es sich bei diesen Daten nur um Mindestschätzungen, und in tatsächlichen Anwendungsszenarien wird ein zusätzlicher Leistungsaufwand auftreten.

Die Tests wurden auf einem Laptop mit einem Intel Core2 Duo T8100 @ 2,1 GHz-Prozessor unter Verwendung des .NET 4.0-Frameworks, Release-Builds und unter Ausschluss des Debuggers (der die Leistung erheblich beeinträchtigen kann) durchgeführt.

Das Folgende ist der im Experiment verwendete Testcode:

<code class="language-csharp">static void Main(string[] args)
{
    int iterations = 1000000;
    Console.WriteLine("Starting " + iterations.ToString() + " iterations...\n");

    var stopwatch = new Stopwatch();

    // 测试异常
    stopwatch.Reset();
    stopwatch.Start();
    for (int i = 1; i <= iterations; i++)
    {
        try
        {
            // 模拟异常抛出
            throw new Exception();
        }
        catch (Exception)
        {
            // 捕获异常
        }
    }
    stopwatch.Stop();
    Console.WriteLine("Exceptions took: " + stopwatch.ElapsedMilliseconds + "ms");


    // 测试返回码 (此处应添加返回码测试代码)

}</code>
Nach dem Login kopieren

(Hinweis: Im Originaltext fehlt der Rückgabecode-Testcodeteil, der Platzhalter wird hier beibehalten)

Das obige ist der detaillierte Inhalt vonWie viel langsamer sind C#-Ausnahmen als Rückgabecodes?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage