Is faster using abbreviated parameter names?

  • Thread starter Iñaki Baz Castillo
  • Start date
I

Iñaki Baz Castillo

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?

=2D-=20
I=C3=B1aki Baz Castillo
 
R

Robert Klemme

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?

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
 
I

Iñaki Baz Castillo

El Lunes, 2 de Marzo de 2009, Robert Klemme escribi=F3:
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 facto=
r=20
seems to be more important), but what I want to know is what should be the=
=20
response based on how Ruby works. Under my understanding Ruby needs to pars=
e=20
during runtime the variable name so a longer variable name would require mo=
re=20
time, am I wrong?

Thanks a lot.


=2D-=20
I=F1aki Baz Castillo
 
D

Denis Haskin

[Note: parts of this message were removed to make it a legal post.]

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
 
B

Brian Candler

Iñaki Baz Castillo said:
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.
 
I

Iñaki Baz Castillo

El Lunes, 2 de Marzo de 2009, Brian Candler escribi=C3=B3:
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 :)

=2D-=20
I=C3=B1aki Baz Castillo
 
I

Iñaki Baz Castillo

El Lunes, 2 de Marzo de 2009, Denis Haskin escribi=C3=B3:
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 :)
I will not code in Ruby to get a unreadable code like in other languages :)



=2D-=20
I=C3=B1aki Baz Castillo
 
D

Denis Haskin

[Note: parts of this message were removed to make it a legal post.]

Good to hear.

It's just remarkable how lots of people start at the end and work their
way backwards... ;-)

dwh
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,019
Latest member
RoxannaSta

Latest Threads

Top