Verbessern Sie die Leistung von ATOI ()
Nach dem Rat von Andrei Alexandrescu in seinem Vortrag "Fast Code" auf Code :: Dive 2015 versuche ich, ATOI () schneller zu bieten, aber die Rückwärtskompatibilität maximieren.
Sie haben Legacy -Code mit ATOI (), wo Sie die String -Parsing -Leistung verbessern möchten. Es wäre sehr einfach, eine spezialisierte String-> Int-Parsen-Routine zu erstellen, wenn das Format der Eingabe garantiert wäre, z. B. jede Zahl unsigniert und genau vier Ziffern lang. Es gibt jedoch Fälle, in denen die an ATOI () gesendeten Saiten von einem externen Kunden stammen, sodass Sie nicht bequem davon ausgehen können, dass die Saiten keine Start-Whitespace haben oder nicht numerische Zeichen am Ende einbeziehen.
Die ATOI () -Funktion macht Folgendes aus:
Hier sind die Ergebnisse für eine bestimmte Konfiguration des Systems/Compiler/Compiler -Optionen (vollständige Optimierung).
CPU -Zeitdiagramm:
Verstrichene Zeitdiagramm:
C ++ Referenz