Forum: Ruby Is faster using abbreviated parameter names?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Iñaki Baz C. (Guest)
on 2009-03-02 22:50
(Received via mailing list)
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?
Robert K. (Guest)
on 2009-03-02 22:56
(Received via mailing list)
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
Iñaki Baz C. (Guest)
on 2009-03-02 23:08
(Received via mailing list)
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.
Denis H. (Guest)
on 2009-03-02 23:09
(Received via mailing list)
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
Brian C. (Guest)
on 2009-03-02 23:27
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.
Iñaki Baz C. (Guest)
on 2009-03-03 01:05
(Received via mailing list)
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 :)
Iñaki Baz C. (Guest)
on 2009-03-03 01:07
(Received via mailing list)
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 :)
I will not code in Ruby to get a unreadable code like in other languages
:)
Denis H. (Guest)
on 2009-03-03 02:16
(Received via mailing list)
Good to hear.

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

dwh
This topic is locked and can not be replied to.