Bug #2741

gets with large file is slow in windoze

Added by Roger Pack almost 2 years ago. Updated 10 months ago.

[ruby-core:28160]
Status:Open Start date:02/13/2010
Priority:Normal Due date:
Assignee:- % Done:

0%

Category:-
Target version:-
ruby -v:ruby 1.8.8dev (2010-02-11 revision 26645) [i386-mingw32]

Description

Reposting from a different bug report...

# 10 MB
n = 100 * 1000 * 1000
puts "writing"
File.open("foo", 'wb'){|f| f.write(" " * n) }
puts "reading"
File.open("foo", 'rb') do |io|
  io.gets
end

writing the file takes 1s, reading it takes 2000s, as it reads (in windows) in only in 4K bytes, so it is constantly resizing the string and recopying it.  In Linux it has the same problem, but reads in 64K bytes, so the problem is much less.

Related issues

related to Ruby 1.8 - Bug #2722: gets on a large file takes a very very long time Open 02/08/2010
related to ruby-trunk - Bug #2742: IO#read/gets can be very slow in doze Closed 02/13/2010

Also available in: Atom PDF