I was just doing some transcript tests and I can't see a speed difference between a handler with regular params vs by-reference parameters. Am I a correct that @params aren't used for optimization?

Hi Alex,


I see two uses for referenced parameters, and one involves optimization (or execution speed).

From my perspective, the speed difference only comes into play when the arguments are large. For example, the record buffer in SDB is ALWAYS passed by reference.

A. In theory, an SDB record can be as large as the largest string Revolution supports. If the buffer is passed by value, it is duplicated with each call; if passed by address, the original buffer location is referenced by every handler. If the size of argument you're passing is measured in megabytes, I don't see how passing by reference [address] can't help but perform better.

B. In addition, several SDB library handlers may reference the same buffer during the execution of a single command. I wouldn't want the overhead of duplicating the buffer for each individual handler.

The other reason for passing by reference is that in some designs it just makes sense to have the handler update the original variable directly instead of returning a value that then replaces the original.
--


Rob Cozens
CCW, Serendipity Software Company
http://www.oenolog.net/who.htm

"And I, which was two fooles, do so grow three;
Who are a little wise, the best fooles bee."

from "The Triple Foole" by John Donne (1572-1631)
_______________________________________________
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to