Effiziente (Zyklen wise) Algorithmus zum berechnen modulo 25?

Ich habe einen code, in dem ich bin-computing-x % 25. x nimmt immer einen positiven Wert, sondern seine dynamische Bandbreite ist groß.

Fand ich heraus, dass dieser bestimmte code-Stück-computing-x % 25 ist die Einnahme von großen Zyklen. Ich brauche, es zu optimieren.

Vorberechnete lookup-Tabelle ist ausgeschlossen wegen der möglichen großen Arbeitsspeicher Größe der Tabelle.

Als zweite Ansatz, den ich codiert, ein fragment(C-code) -

mod(a, b)
{   
    int r = a;  
    while(r >= b)
    {      
        r = r - b;
    }   
    return r;
}

1.) Wie kann ich diese optimieren, code für weitere Zyklen(squeeze es auf max)?

2.) Gibt es eine ganz andere optimierte Art und Weise zu erreichen x % 25( ich weiß, Ihr nicht einen gemeinsamen Betrieb, aber immer noch auf der Suche für clevere Eingänge die Menschen möglicherweise verwendet haben, in Ihren Erfahrungen, die vielleicht nelp mich.).

Danke.

-AD

EDIT:

Ich denke, mit einer nativen modulo-operator % in C , intern eine division ( /), die ist teuer, auf dem Prozessor bin ich mit.(Keine div-Anweisung). daher versuchen um zu sehen, ob benutzerdefinierte implemetation schlagen können, die inhärenten Berechnung mittels % - operator.

-AD

Glauben Sie, dass können Sie zur Optimierung der % - operator durch schreiben von C-code? Vielleicht gibt es einige shortcuts in der Montage aber ich bezweifle paar Zeilen C besser können als integrierte in-operator.
Compiler Kompromisse machen. Sie müssen nicht immer versuchen, für die Schnellste Geschwindigkeit. Es ist in der Regel ziemlich leicht zu schlagen, ein compiler für einen bestimmten Fall, denn der compiler ist der Umgang mit den Allgemeinen Fall.
"Ich fand heraus, dass diese ... ist die Einnahme von großen Zyklen. Ich brauche, es zu optimieren." Dies ist ein gute Sache zu hören! Eine Optimierung Frage, wo es war tatsächlich lief durch einen profiler.
Wenn Sie identifiziert die Prozessor - eine, die nicht eine Abteilung Betrieb - dann würden Sie besser Antworten schneller.
Down-gestimmt -, weil all die großen-großen Eingang, die Menschen haben in dieser Frage, ohne auch nur einen Hauch von Pflege von der original-poster, geschweige denn ein V-Zeichen für die gesuchte Lösung (stackoverflow.com/a/980973/451461).

InformationsquelleAutor goldenmean | 2009-06-11

Schreibe einen Kommentar