lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <>
Subject [jira] Commented: (LUCENE-2816) MMapDirectory speedups
Date Fri, 17 Dec 2010 09:42:03 GMT


Uwe Schindler commented on LUCENE-2816:

One thing to add: When using readFloat & co, we should make sure that we set the endianness
explicitely in the ctor. I just want to explicitely make sure that the endianness is correct
and document it that it is big endian for Lucene.

> MMapDirectory speedups
> ----------------------
>                 Key: LUCENE-2816
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Store
>    Affects Versions: 3.1, 4.0
>            Reporter: Robert Muir
>            Assignee: Robert Muir
>         Attachments: LUCENE-2816.patch
> MMapDirectory has some performance problems:
> # When the file is larger than Integer.MAX_VALUE, we use MultiMMapIndexInput, 
> which does a lot of unnecessary bounds-checks for its buffer-switching etc. 
> Instead, like MMapIndexInput, it should rely upon the contract of these operations
> in ByteBuffer (which will do a bounds check always and throw BufferUnderflowException).
> Our 'buffer' is so large (Integer.MAX_VALUE) that its rare this happens and doing
> our own bounds checks just slows things down.
> # the readInt()/readLong()/readShort() are slow and should just defer to ByteBuffer.readInt(),
> This isn't very important since we don't much use these, but I think there's no reason
> users (e.g. codec writers) should have to readBytes() + wrap as bytebuffer + get an 
> IntBuffer view when readInt() can be almost as fast...

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message