forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   О быстроте функций (http://forum.boolean.name/showthread.php?t=1576)

MiXaeL 26.09.2006 22:58

О быстроте функций
 
Вот решил проверить:

Код:


Graphics3D 640,480
SetBuffer BackBuffer()
 
Global camera=CreateCamera()
Global light=CreateLight()
RotateEntity light,90,0,0
 
cylinder=CreateCylinder()
PositionEntity cylinder,0,0,5
 
While Not KeyDown( 1 )
 
 t=MilliSecs()
 For i=1 To 100000
  Dist()
 Next
 dt=MilliSecs()-t
 
 t1=MilliSecs()
 For i=1 To 100000
  dist=EntityDistance(camera,light)
  If dist<1000 near=True
 Next
 dt1=MilliSecs()-t1
 
 RenderWorld
 Text 10,10,+dt
 Text 10,30,+dt1
 Flip
 
Wend
End
 
Function Dist()
 dist=EntityDistance(camera,light)
 If dist<1000 near=True
End Function

Как и ожидалось dt1>dt, причем где-то в 1,5 раза (на моем компьютере значения были dt1=54-57, dt=34-37).

P.S. Конечно я не против функций, их можно и нужно использовать. А эту информацию просто примите к сведению...

jimon 26.09.2006 23:09

Re: О быстроте функций
 
inline функции одинаковы по скоростью с обычным кодом
тока вот в блице их нету :)

MiXaeL 26.09.2006 23:11

Re: О быстроте функций
 
Кроме функций можно использовать
Gosub ... Return

jimon 26.09.2006 23:28

Re: О быстроте функций
 
но ето, imho, дурной тон

pax 27.09.2006 11:47

Re: О быстроте функций
 
Gosub ... Return всеравно медленнее прямого кода, но быстрее чем функции. Но функции удобнее хотябы тем, что можно очень просто передавать параметры в ее тело.

Совет (ИМХО): чем больше операторов находится в теле в функции, тем незначительнее становится время ее вызова ;)

johnk 23.04.2007 17:40

Re: О быстроте функций
 
Цитата:

Совет (ИМХО): чем больше операторов находится в теле в функции, тем незначительнее становится время ее вызова
В чем совет? Где доказательства?

Platon 23.04.2007 18:48

Re: О быстроте функций
 
2JohnK
PAX имеет ввиду разницу затрат времени на тело функции и времени на ее вызов, т.е. если функция будет выполнять сложный кусок кода то время вызова будет низким по сравнению с временем выполнения этого куска кода :)
А так еще на скорость вызова влияет кол-во параметров у функции, ибо соответственно времени больше тратится на их передачу.

HolyDel 24.04.2007 01:27

Re: О быстроте функций
 
и не только количество но и тип параметров.
к примеру строка (не указатель на строку) будет передоваться довольно долго.


Часовой пояс GMT +4, время: 07:43.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot