On Fri, 16 Feb 2001, Hugh Sasse Staff Elec Eng wrote: > On Fri, 16 Feb 2001, Mike Stok wrote: > > > On Fri, 16 Feb 2001, Michael Davis wrote: > > > > > The problem is that it only reads 9895 rows. Is this a bug? Can someone > > > tell me where 105 of my rows went? > > > > They're probably lurking in the writing file's buffer. Try adding an > > fp.close, it worked for me. > > > File.open() can be followed by a block, which is useful because the close > is done for you. It keeps you code well structured, too. > Hugh ... so the writing part of the code could look like: # make sure t and rows are available later t = Time.now rows = 0 # constructing data outside of the loop saves some time... data = [nil, 'Davis', 'Michael', 0] File.open("Membership.dmp", "w+") do |fp| 1.upto(100000) do |i| data[0] = i Marshal.dump(data, fp) rows += 1 end end print " It took #{Time.now - t} seconds to insert ", rows, " rows\n" and the original poster could adjust the second chunk similarly. I was surprised that moving the "construction" of data out of the loop saved as much as 10% of the reported time in the writing loop. Mike -- mike / stok.co.uk | The "`Stok' disclaimers" apply. http://www.stok.co.uk/~mike/ | GPG PGP Key 1024D/059913DA | Fingerprint 0570 71CD 6790 7C28 3D60 stok / colltech.com (CT - work) | 75D2 9EC4 C1C0 0599 13DA