From: Philip Rhoades Date: 2008-06-25T02:42:33+09:00 Subject: Re: Performance improvement possible? Robert, Robert Klemme wrote: > 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. Yes, that seems like a good start. 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