Eleanor,


Eleanor McHugh wrote:
> On 26 Jun 2008, at 04:24, Rob Biedenharn wrote:
>> On Jun 25, 2008, at 8:44 PM, Philip Rhoades wrote:
>>> Chuck,
>>> Chuck Remes wrote:
>>>> On Jun 25, 2008, at 5:13 PM, Philip Rhoades wrote:
>>>>>
>>>>> The change to a single Ruby script simplified the previous setup 
>>>>> quite markedly but I'm not sure that much more can be done with the 
>>>>> relatively small script now.  I logged into "ruby Talk" on 
>>>>> http://codeforpeople.com/ but I couldn't see anywhere to post the 
>>>>> code.  I can mail the files to anyone who is interested in having a 
>>>>> look.
>>>> Phil,
>>>> use one of the pastie sites to paste up your code for us to see.
>>>> http://pastie.org
>>>> http://rafb.net
>>>
>>> Done - http://pastie.org/222306
>>>
>>> I am also rerunning with v1.9 and now that the code is all in one 
>>> program it seems to be faster (but still about 3x slower than the 
>>> equivalent shell scripts and C/C++ program).
>>>
>> OK, even knowing that it started as shell+C, it needs help ;-)
>>
>>  http://pastie.org/222375
>>
>> Except for noticing that the Dir.chdir is still commented out, I think 
>> that this is equivalent to your original.  Of course, all that really 
>> means it that I think it produces the same output.  I don't have your 
>> input files to check (and I'm not really sure I have a clue what it is 
>> really doing either).
>>
>> If you can directly try this new set, I'd be curious as to the 
>> relative speed.  A few important notes:
>> * the $darr was never referenced so why bother to initialize it
>> * the multiple loops in stats06 have been collapsed
>> * the various seed* loops now use strings directly
>> * the parameters to statz32000 are strings rather that do somewhat 
>> pointless conversions (and sample_sz of 999 would 'overflow' the %02d 
>> into "999" anyway).  Some potential values won't work as literals (try 
>> 08 as an example, or 012) since the leading 0 on a literal means octal.
>> * the more common boolean values are true (rather than TRUE) and false 
>> and parentheses are not generally needed around the conditional 
>> expression of an 'if'
> 
> 
> 
> A further modified version of statz which should changes the way IO is 
> handled:
> 
>     http://pastie.org/222765
> 
> Let me know if this makes any difference.


A few things:

- you left a line in the loop:

	File.open( output_filename, 'w' ) do |fout|

which should be deleted

- I originally used:

	stats = [] 
                  	lines = File.readlines(input_filename, 'r')

but found that reading the whole file (8871 lines) and then processing 
the array was inefficient so I got rid of the array

- using:

	stats << stats06

and the file writing output of:

         File.open(output_filename, "a") do |file| 

		file.sync = false
		file.puts *stats
		file.fsync
	end

looks interesting - why should that be faster?

Thanks again,

Regards,

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