Performance durch Branch Prediction?

In diesem Bereich sind Themen vom Themenersteller als erledigt zu markieren, wenn die Frage beantwortet oder das Problem gelöst wurde. Das Thema wird daraufhin automatisch geschlossen.
Klicke hierzu auf "Thema bearbeiten > Als erledigt markieren".
  • Moin,


    ich habe mir die letzte Zeit über einige Gedanken über das Thema Metin2 Source & Branch Prediction gemacht. Wer nichts mit dem Begriff anfangen kann hier eine kurze Beschreibung.


    Können erfahrene Coder hier vielleicht mal ihre Gedanken teilen? Gibt der Metin2 Source genügend Einstiegspunkte her um dort eventuell die Performance zu boosten?


    Als Anmerkung:
    Das Beispiel, welches ich in der Erklärung angedruckt habe

    Code
    1. if (data[c] >= 128)
    2. sum += data[c];



    lässt sich wie folgt ändern um einen Performance-Boost zu erzielen:

    Code
    1. int t = (data[c] - 128) >> 31;
    2. sum += ~t & data[c];

    Benchmarks: Core i7 920 @ 3.5 GHz
    C++ - Visual Studio 2010 - x64 Release

    Code
    1. // mit Branch
    2. seconds = 11.777
    3. // ohne Branch
    4. seconds = 2.564


    Kompletter Code:


    Danke für euer Interesse

  • Dieses Thema enthält 3 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.