Phil Rhoades
6/24/2008 5:34:00 PM
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