Stefan Mettenbrink <S dot Metti at gmx dot de> wrote:
> BTW, ich habe es gerade mal mit Join ausprobiert. Ist hier nicht
> schneller. Im schnitt bei drei Durchläufen nahezu exakt derselbe Wert
> wie zuvor beim addieren der Strings.
>
> Mache ich etwas falsch?
Bei 9999 als Grenze: 1 und 0
Bei 99999 als Grenze: 900 und 3
Der Aufwand bei TestAdd steigt Exponential, der bei Join eher linear.
Das Array sollte vorher in passender Größe erzeugt werden, sonst wird es
mit Append dauernd umkopiert.
Function testAdd() As string
dim a as string
dim i as integer
for i=0 to 99999
a=a+"a"
next
return a
End Function
Function TestJoin() As string
dim i as integer
dim a(100000) as string
for i=0 to 99999
a(i)="a"
next
Return Join(a)
End Function
Sub Open()
dim s as string
dim t as integer
t=ticks
s=TestAdd
t=ticks-t
MsgBox str(t)
t=ticks
s=TestJoin
t=ticks-t
MsgBox str(t)
End Sub
Mfg
Christian
--
Around ten thousand functions in one REALbasic plug-in. The MBS Plugin.
<http://www.monkeybreadsoftware.de/realbasic/plugins.shtml>
|