Щозанах
Сегодня запускаю похожий код, результаты совсем другие:
Blitz3D - 1 мс
FreeBasic - 2140 мс
PureBasic - 19 мс
Импер, объясни поподробнее, как правильно писать код то? Или где об этом почитать? 3000 символов - не такая же большая строка, 1-2 страницы А4.
Код:
Blitz3D:
For i = 1 To 3000
d$ = d$ + "a"
Next
TimerStart = MilliSecs()
For i = 1 To 3000
k$ = Left(d$, i)
Next
tend = MilliSecs() - TimerStart
Print tend
WaitKey()
FreeBasic:
Dim d As String
Dim k As String
Dim tend As Double
For i As Integer = 0 To 3000
d = d + "a"
Next
Dim TimerStart As Double = Timer()
For i As Integer = 0 To 3000
k = Left(d, i)
Next
tend = Timer() - TimerStart
Print tend
Sleep
PureBasic:
st.s = ""
sl.s = ""
For i = 0 To 3000
st.s = st.s + "a"
Next
t = ElapsedMilliseconds()
For i = 0 To 3000
sl.s = Left(st.s, i)
Next
tend = ElapsedMilliseconds() - t
If OpenConsole()
PrintN(Str(tend))
Input()
EndIf
UPD: Перезагрузил комп, FB - 0,8 мс.