Rob,


Rob Biedenharn wrote:
> On Jun 24, 2008, at 12:23 PM, Philip Rhoades wrote:
>> People,
>>
>> I have asked before about Ruby to C conversion programs and other 
>> alternatives with no really satisfactory solution for my particular 
>> situation.
> 
> Are you looking at all solutions?


I guess I was mostly interested in the Ruby to C conversion program but
it is not really ready . .


>> I decided to test out a conversion of one of the C programs and see 
>> what sort of results I get.  This particular small C program is called 
>> 32,000 times from loops within a shell script.  The program then 
>> processes a text file, writes a text file and exits.  The same shell 
>> script with a Ruby program replacing the C program does exactly the 
>> same thing but takes 8.5 times as long (27m/227m).
> 
> Can you replace the whole shell script with a ruby program?  Then 
> whatever startup cost you have for the Ruby interpreter is paid once 
> rather than 32_000 times.


Yes, good point - I should have thought of that - the script is bigger
than the program but that is the next step I guess . .


>> The profile on ONE execution of the Ruby program produced:
>>
>>  %   cumulative   self              self     total
>> time   seconds   seconds    calls  ms/call  ms/call  name
>> 65.18    14.15     14.15        1 14150.00 21700.00  Array#each
>> 12.44    16.85      2.70    93792     0.03     0.03  Array#[]
>>  8.15    18.62      1.77    62108     0.03     0.03  String#split
>>  6.73    20.08      1.46    53215     0.03     0.03  String#==
>>  2.58    20.64      0.56       66     8.48    12.73  Range#each
>>
>> It would be SO much nicer to rewrite some stuff that needs rewriting 
>> and write ALL new stuff in Ruby but this looks impossible with these 
>> times . .
>>
>> Any suggestions for performance improvements?
>>
>> I am using F9.
> 
> F9?  Is that some key in an IDE that runs your ruby code?


Sorry, Fedora 9.


> Depending on what your C program has to do and why a shell script is 
> calling it in the first place, you might have other benefits from using 
> Ruby in place of the shell script.  A couple years back, I worked on a 
> similar kind of project that was replacing shell scripts with Perl and 
> there were many benefits that Perl could exploit that just could not be 
> managed by constructs in the shell.


I would be surprised if there was much improvement in the shell script
part itself but the reduced processes might have a big impact.

Thanks,

Phil.
-- 
Philip Rhoades

Pricom Pty Limited  (ACN 003 252 275  ABN 91 003 252 275)
GPO Box 3411
Sydney NSW	2001
Australia
E-mail:  phil / pricom.com.au