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