Re: mmap disk performance

2007-11-20 Thread Chris Mellon
On Nov 20, 2007 10:31 AM, koara <[EMAIL PROTECTED]> wrote:
> Hello all,
>
> i am using the mmap module (python2.4) to access contents of a file.
>
> My question regards the relative performance of mmap.seek() vs
> mmap.tell(). I have a generator that returns stuff from the file,
> piece by piece. Since other things may happen to the mmap object in
> between consecutive next() calls (such as another iterator's next()),
> i have to store the file position before yield and restore it
> afterwards by means of tell() and seek(). Is this correct?
>
> When restoring, is there a penalty for mmap.seek(pos) where the file
> position is already at pos (i.e., nothing happened to the file
> position in between, a common scenario)? If there is, is it worth
> doing
>
> if mmap.tell() != pos:
> mmap.seek(pos)
>
> or such?
>

Measure it and see. I suspect that the cost of the check in Python
will outweigh any extra work the C code might do, but you should never
guess - just measure it.

This is also pretty unlikely to be any sort of hotspot in your
application - again, measure and see. Unless your profiler says you
spend a lot of time in mmap.seek calls, don't worry about it.
-- 
http://mail.python.org/mailman/listinfo/python-list


mmap disk performance

2007-11-20 Thread koara
Hello all,

i am using the mmap module (python2.4) to access contents of a file.

My question regards the relative performance of mmap.seek() vs
mmap.tell(). I have a generator that returns stuff from the file,
piece by piece. Since other things may happen to the mmap object in
between consecutive next() calls (such as another iterator's next()),
i have to store the file position before yield and restore it
afterwards by means of tell() and seek(). Is this correct?

When restoring, is there a penalty for mmap.seek(pos) where the file
position is already at pos (i.e., nothing happened to the file
position in between, a common scenario)? If there is, is it worth
doing

if mmap.tell() != pos:
mmap.seek(pos)

or such?

Cheers!
-- 
http://mail.python.org/mailman/listinfo/python-list