lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Asgeir Halldorsson (JIRA)" <>
Subject [jira] Updated: (LUCENENET-8) Throwing an exception as a result of a normal situation is extremely bad in .net
Date Sun, 01 Oct 2006 11:07:20 GMT
     [ ]

Asgeir Halldorsson updated LUCENENET-8:

    Attachment: test.patch

I made a small test. See attached patch.  (NOTE:  Not tested fully)
And it seams removing the exception in refill makes indexing time 50% less.

I created a small test app that created 1024 docs with 1 filed.  Filled with Guid.  And the
indextimer was just over 14sec after patch about 10sec

> Throwing an exception as a result of a normal situation is extremely bad in .net
> --------------------------------------------------------------------------------
>                 Key: LUCENENET-8
>                 URL:
>             Project: Lucene.Net
>          Issue Type: Task
>         Environment: Windows XP, Visual Studio 2003
>            Reporter: Jo Inge Arnes
>         Attachments: test.patch
> At the end of the FastCharStream.Refill() method, it says:
> int charsRead = input.Read(buffer, newPosition, buffer.Length - newPosition);
> if (charsRead <= 0)
>    throw new System.IO.IOException("read past eof");
> else
>    bufferLength += charsRead;
> When I run Lucene in the debugger, this causes an exception to be thrown all the time.
> To me it looks like it is thrown as a result of a normal situation, not because of some
critical error.
> Is this correct?
> If this is the case, then the code is horrible. Throwing an exception in .NET is extremely
slow, and should never be thrown as a result of a normal situation. I repeat: "extremely slow"

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:


View raw message