Is faster using abbreviated parameter names?

Hi, a simple question:

a)
def hello(string)
# stuff with ‘string’
end

b)
def hello(s)
# stuff with ‘s’
end

Will be b) faster since the parameter name contains less letters?

On 02.03.2009 21:48, Iñaki Baz C. wrote:

end

Will be b) faster since the parameter name contains less letters?

I have no idea. I guess not. But you can easily verify for yourself.
Just write up a little program using Benchmark and you’ll soon know.

Kind regards

robert

El Lunes, 2 de Marzo de 2009, Robert K.
escribió:> > # stuff with ‘s’

end

Will be b) faster since the parameter name contains less letters?

I have no idea. I guess not. But you can easily verify for yourself.
Just write up a little program using Benchmark and you’ll soon know.

Yes, doing a benchmark the result is more or less the same (any other
factor
seems to be more important), but what I want to know is what should be
the
response based on how Ruby works. Under my understanding Ruby needs to
parse
during runtime the variable name so a longer variable name would require
more
time, am I wrong?

Thanks a lot.

Iñaki Baz C. wrote:

Yes, doing a benchmark the result is more or less the same (any other
factor
seems to be more important), but what I want to know is what should be
the
response based on how Ruby works. Under my understanding Ruby needs to
parse
during runtime the variable name so a longer variable name would require
more
time, am I wrong?

I believe you’re wrong.

Symbols are resolved into references to the symbol table at parse time,
so when running, :s and :ssssssssssssssss are just two different
pointers into the same symbol table. As for local variables, they are
just offsets into the stack frame.

So it might take a microscopically small amount of extra time for your
program to start up, reading a few extra bytes of source code, but once
it’s running, each iteration should take the same time.

And how much faster would it have to be to make it worth it to use a
meaningless name versus a meaningful one?

Smells like premature optimization to me…

Cheers,

dwh

El Lunes, 2 de Marzo de 2009, Brian C. escribió:

I believe you’re wrong.

Symbols are resolved into references to the symbol table at parse time,
so when running, :s and :ssssssssssssssss are just two different
pointers into the same symbol table. As for local variables, they are
just offsets into the stack frame.

So it might take a microscopically small amount of extra time for your
program to start up, reading a few extra bytes of source code, but once
it’s running, each iteration should take the same time.

Thanks, that makes sense :slight_smile:

Good to hear.

It’s just remarkable how lots of people start at the end and work their
way backwards… :wink:

dwh

El Lunes, 2 de Marzo de 2009, Denis H. escribió:

And how much faster would it have to be to make it worth it to use a
meaningless name versus a meaningful one?

Smells like premature optimization to me…

Sure, it was just curiosity :slight_smile:
I will not code in Ruby to get a unreadable code like in other languages
:slight_smile: