Holy shit!

I implemented the thread/wait/notify stuff last night, and it boosts
performance incredibly! If you use xjavadoc to read only class-level tags
it's now abot 5 times faster than javadog. Here is how it works:

A new thread is spawned for each source class. XJavaDoc waits until class
level parsing is done.
When the parser thread is done parsing the class level, the thread is
suspended with a wait(), and XJavaDoc is
notified, so it can continue.

If one of the methods that require class body parsing is called (e.g.
methods()), the parser thread of the class
in question is woken up with a notify, and it parses the rest of the
sources. During this parsing, we're also
waiting to avoid a race condition.

The parser threads are all daemons, so that the VM can exit even if they are
still running or suspended.
It was really fun to do some thread programming. I haven't done much of that
lately. The idea was Ara's (of course).

The parser is not static anymore, but so what? We finally found the weak
spot, and where to optimize. Now I'm looking forward to
use xjavadoc in xdoclet soon.

Check out the benchmarks ;-)

I guess that's enough optimising for now. The rest of the job is:

1) Write a proper test suite. Throw away the test classes that are there and
add some custom written ones and try to break xjavadoc - and fix remaining
bugs.
2) Put xjavadoc into xdoclet
3) Pick up Reverse XDoclet and XTags. (Konstantin is already working on the
gui I think)

See ya
Aslak

> -----Original Message-----
> From: Ara Abrahamian [mailto:[EMAIL PROTECTED]]
> Sent: 23. februar 2002 18:35
> To: [EMAIL PROTECTED]
> Subject: RE: grammar
>
>
> I knew it! The wait() trick seems simple, isn't it?
>
> Ara.
>
> > -----Original Message-----
> > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> > Sent: Saturday, February 23, 2002 8:44 PM
> > To: Ara Abrahamian
> > Subject: RE: grammar
> >
> > Forget about branching. I'll take a look at it now ;-)
> >
> > Aslak
>
>
>
> _________________________________________________________
>
> Do You Yahoo!?
>
> Get your free @yahoo.com address at http://mail.yahoo.com
>
>
>


_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel

Reply via email to