lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Troy Howard <>
Subject Re: Stefan's Newbie Questions (was Re: Proposal Status, Initial Committors List, Contributors List)
Date Wed, 26 Jan 2011 19:01:15 GMT
I'm on the fence about IKVM.

It has some significant benefits and some significant drawbacks:

- Allows us to get to a "commoditized" line-by-line .NET DLL in the
fastest and easiest manner. No porting.
- Reasonable performance profile
- Well tested Java environment equivalence

- Blackbox, can't improve on it or tweak behaviour. If there are bugs
or other issues, related to IKVM (ie thread safety, memory handling,
etc) we can't fix those without dropping IKVM as our solution.
- Adds an additional dependency
- May not be the best possible performance profile. As DIGY said, it's
roughly equivalent, but that doesn't mean that current Lucene.Net is
fully optimized for .NET. In fact, it has been proven not to be by
folks who have made custom builds/forks, realizing significant
speedups using generics, etc..

Also, that's a significant change in the library, which will introduce
breaking API changes, and require us to beef up the unit tests to
ensure that concerns like thread safety continue to behave as


On Wed, Jan 26, 2011 at 10:39 AM, Hans Merkl <> wrote:
> A .NET wrapper around the IKVM classes may be a good idea.
> I like the idea that IKVM would also allow use of tons of other useful
> Java/Lucene code that's out there. There are some filters and analyzers in
> Java that might be very useful for my work. That's not really possible with
> the line-by-line port. It may be possible with Sharpen though.
> On Wed, Jan 26, 2011 at 13:04, Digy <> wrote:
>> In theory you can use ikvmc to compile the Java source files into a .NET
>> DLL
>> that references some IKVM DLLs and an ikmvc'ed version of OpenJDK's
>> classlib.  After that it is a plain .NET DLL and one could write a .NET
>> centric API using that DLL.
>> I haven't really tried it on anything serious and it may become tricky if
>> reflection gets involved.  And there is some layer of indirection you
>> wouldn't have by a line by line translation that may lead to decreased
>> performance.  I'd be game to try it out, though.
>> ----
>> A few yers ago, I tried IKVM with ~300M (200-300 bytes) documents. It was
>> surprisingly as fast as Lucene.Net. That may mean that we should fix
>> something in the code.
>> Reflection is another nice thing in IKVM. You can even load and execute
>> Java
>> classes J

View raw message