From: Robert Klemme Date: 2008-06-25T02:03:14+09:00 Subject: Re: Performance improvement possible? On 24.06.2008 18:23, 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. 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). > > 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? Difficult without seeing the Ruby program. But I'd also start with rewriting the script in Ruby so you do not have multiple processes. Kind regards robert