Big empty file creation

I need to creat an empty file, over 10GB size.
Which way is fastest in file creation?


file<<“0”*file_size_in_bytes

consme too much memory

ts wrote:

Zhukov P. wrote:

I need to creat an empty file, over 10GB size.
Which way is fastest in file creation?

use IO#sysseek followed which a IO#seekwrite
^^^^^^^^^^^^
IO#syswrite

Sorry,

Guy Decoux

On 28.06.2008 11:10, ts wrote:

Zhukov P. wrote:

I need to creat an empty file, over 10GB size.
Which way is fastest in file creation?

use IO#sysseek followed which a IO#seekwrite

But note that this will not work on all OS in case the file must be
allocated. Seeking likely creates a sparse file.

Another approach is to use dd like

dd if=/dev/zero of=your_file bs=1048576 count=10240

That’s probably as fast as it gets if you need blocks actually allocated
to the file.

Kind regards

robert

Zhukov P. wrote:

I need to creat an empty file, over 10GB size.
Which way is fastest in file creation?

use IO#sysseek followed which a IO#seekwrite

Guy Decoux

On 28 Jun 2008, at 09:57, Zhukov P. wrote:

file<"0"file_size/x
end

too slow :frowning:

Pick a value of x that’s a multiple of 512 bytes as this will match
your data writes to the OS’s disk cache. This may or may not gain you
some performance advantage which will vary depending on the underlying
cluster size of the file system, general filesystem overhead, disk
fragmentation and a host of other properties that our outside your
control as a programmer. Even coding is assembler creating a 10GB file
with each byte zeroed is going to be a slow process…

Ellie

Eleanor McHugh
Games With Brains
http://slides.games-with-brains.net

raise ArgumentError unless @reality.responds_to? :reason

On 28.06.2008 12:23, Zhukov P. wrote:

Another approach is to use dd like

dd if=/dev/zero of=your_file bs=1048576 count=10240

That’s probably as fast as it gets if you need blocks actually allocated to
the file.

i can’t use dd, cause i want a cross-platform application

dd runs on my Linux, cygwin, Solaris, HP UX… - pretty cross platform
I’d say. :slight_smile:

The question is - do you need the whole file to be allocated or not? If
yes, a solution is slow regardless of programming language.

Cheers

robert

On Sat, Jun 28, 2008 at 1:22 PM, Robert K.
[email protected] wrote:

allocated. Seeking likely creates a sparse file.
robert

i can’t use dd, cause i want a cross-platform application