[Ruby-de-talk] Performance-Frage - String zusammenbasteln

Michael Neumann mneumann at ntecs.de
Sun Aug 1 16:11:07 EDT 2004


Dirk Einecke wrote:
> Bisher hatte ich sowas:
>   path = p.directory + p.filename + '.rb'
> 
> Würde nun
>   path = "#{p.directory}#{p.filename}.rb"
> oder
>   path = p.directory << p.filename << '.rb'
> besser sein?

komischerweise ist das erste (also mit +) am schnellsten, wenn directory 
und filename so jeweils um die 20 bytes gross sind.

Aber wenn du das nicht in einer Schleife mehrere tausend mal ausführst, 
oder wirklich grosse Strings zusammenbaust, dann ist es wirklich wurscht 
was du verwendest. Ich würde dann lieber auf lesbarkeit achten.

BTW, Pfade kannst du auch mit File.join zusammenbauen.

File.join("a", "b", "c") # => "a/b/c"

>> Hier ein kleiner Benchmark:
>>
>>   require 'benchmark'
> 
> 
> Kann ich leider auf dem Server nicht machen, dieses Modul nicht 
> installiert ist:
>   info.rb:3:in `require': No such file to load -- benchmark (LoadError)

einfach bei dir auf'm heimrechner mal testen. hm, kann sein, das 
benchmark erst ab 1.8 standardmässig dabei ist.

Grüsse,

   Michael


More information about the Ruby-de-talk mailing list