Si vous définissez la taille avent utilisation (Ceci évite les ré-allocation de mémoire à la chaîne), cela aura pour conséquence une rapidité considérable, exemple:
Code : Tout sélectionner
Abc$ = "Abcdefghijklmnopqrstuvwxyz"
If InitialiseStringBuilder(260000000) And IsStringBuilder()
MessageRequester("StringBuilder Initialisation...", "StringBuilder Memory ID = " + Str(StringBuilderGetMemoryID()) + Chr(13) + Chr(10) +
"StringBuilder Memory Size = " + Str(StringBuilderGetMemorySize()) + Chr(13) + Chr(10) +
"StringBuilder Memory Remaining = " + Str(StringBuilderGetMemoryRemaining()) + Chr(13) + Chr(10) +
"StringBuilder Memory Position = " + Str(StringBuilderGetMemoryPosition()))
Time1 = ElapsedMilliseconds()
For I = 1 To 10000000
MemoryID = StringBuilderGetMemoryID()
MemorySize = StringBuilderGetMemorySize()
MemoryRemaining = StringBuilderGetMemoryRemaining()
MemoryPosition = StringBuilderGetMemoryPosition()
OctetsWrite = StringBuilderAddString(Abc$)
Next
Time2 = ElapsedMilliseconds()
MessageRequester("StringBuilder Résultat...", "StringBuilder Memory ID = " + Str(StringBuilderGetMemoryID()) + Chr(13) + Chr(10) +
"StringBuilder Memory Size = " + Str(StringBuilderGetMemorySize()) + Chr(13) + Chr(10) +
"StringBuilder Memory Remaining = " + Str(StringBuilderGetMemoryRemaining()) + Chr(13) + Chr(10) +
"StringBuilder Memory Position = " + Str(StringBuilderGetMemoryPosition()) + Chr(13) + Chr(10) +
"StringBuilder Last Octets Write = " + Str(OctetsWrite) + Chr(13) + Chr(10) +
"Time Elapsed = " + Str(Time2 - Time1) + " Ms.")
Else
MessageRequester("StringBuilder Résultat...", "Erreur, Le StringBuilder n'a pas put être initialisé !", 16)
EndIfSi vous ne mettez pas de taille, alors le programme réaloura constamment de la mémoire s'il n'en à pas assez, ceci ralentie considérablement le programme !
Désactivé le débogueur aussi pour le test

