If I do the following:

def mmap_search(f, string):
        fh = file(f)
        mm = mmap.mmap(fh.fileno(), 0, mmap.MAP_SHARED, mmap.PROT_READ)

        return mm.find(string)

def mmap_is_in(f, string):
        fh = file(f)
        mm = mmap.mmap(fh.fileno(), 0, mmap.MAP_SHARED, mmap.PROT_READ)

        return string in mm

then a sample mmap_search() call on a 50MB file takes 0.18 seconds, but the mmap_is_in() call takes 6.6 seconds. Is the mmap class missing an operator and falling back to a slow default implementation? Presumably I can implement the latter in terms of the former.

Kris
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to