TStringList vs int array (Speed)



  • Ich schreibe gerade an einer Simulation in der gewisse Funktionen sehr oft aufgerufen werden. Das Ziel der Simulation ist es nicht schnell zu sein, aber wenn man code (auf geschwindigkeit) optimieren kann, so will ich dies auch machen.

    Ich verwende äußerst gerne TStringList. Mittlerweile sogar als Ersatz für integer arrays. (z.b. auch für den Rückgabewert einer Funktion).

    Jetzt einmal abgesehen vom Speicherverbrauch (der vermutlich mit der Stringlist höher ist) wäre ein reines int array vom erstellen (bzw. auch wieder deleten im fall der stringlist) schneller?

    Natürlich könnte ich die Stringlist auch global erstellen aber das will ich nicht. (Ich nehme an dann wären beide gleich schnell)



  • Hallo

    natürlich ist ein AnsiString-Array (also TStringList) umfangreicher und langsamer als ein int-Array. Denn ein int ist genau 4 Byte, während ein AnsiString mindestens 4 Byte groß ist. Desweiteren wird jedes Suchen und Sortieren bei AnsiString lansgamer sein, denn dort müßen einzelne Chars verglichen werden (wenn mehr als eine Ziffer).

    bis bald
    akari



  • Natürlich könntest du auch schnell eine kleine Testanwendung schreiben, in der beide Varianten ein paar (zig)tausend mal durchlaufen, und selbst die Zeit messen ...



  • Danke für die Antworten!

    @Jansen Ja, das klingt nach einer guten Methode, werd das wohl ausprobieren. (Morgn 😉 )



  • *lol* StringList als integer-Array verwenden... *haha* 😃

    klar ist das langsamer und sogar extrem. ich verwende gar keine stringlisten mehr, weil die so arschlahm sind! wozu der ganze overhead. kein wunder wenn programm ein haufen speicher fressen und lahm wie meine oma sind... 👎


Anmelden zum Antworten