Skip to main content
gamedev.net
🔒 Locked

Context.Prepare

Started by zola Nov 7, 2004 at 9:11 AM 3 replies 2.3k views
Original Post
zola
zola
Hi I'm currently trying to squeeze out performance from my app. I wonder if calling Prepare() is needed every time a script function is called or if its enough to call Prepare just once if I keep the context after the script returned? Regards Tom
WitchLord
WitchLord
It is necessary to call Prepare() to reset the context before starting the execution again.

I could make Prepare() a little smarter by verifying if it is the same function ID that is being passed, and if so use the information that is already known. That would save a little overhead, where bytecode address is fetched, and stack space is verified, etc.

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - <a href="http://www.angelcode.com/tower" rel
zola
zola
Ok, thanks
I just want to make sure I don't introduce overhead [wink]
Lioirc
Lioirc
Hi

As WitchLord said, probably is needed to call prepare() each time ,i dont have confirmed this, but i use a modified version where i call prepare at the script compilation, and call execute() each frame, without calling prepare, avoiding the overhead
The scripts use the last stack state for each new frame, with script/context pairs

I dont know what is the current implementation state of the ASM VM, but a few changes are needed, like updating the eip at the execution ret

Lioric



WitchLord
WitchLord
That is actually a good idea. I think I will change the behaviour of Execute to reset the status when it is finished. That way the application would be allowed to call Execute() again without first calling Prepare() if the same script function is to be called.
AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - <a href="http://www.angelcode.com/tower" rel

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.