Community
Participate
Working Groups
We are using eclipse 2.1.1 on windows 2000. All our projects reside on a main samba server including multiple jars, some of them large (e.g. weblogic.jar). Building a project (even in increamental build caused by a save operation) is very time consuming. We already moved our output directory locally (using linked resource). We found out that a large portion of the compilation time is spent in "ClasspathJar.isPackage". In that method all the entries of the jar are read to find what packages are available in the jar to optimize class search later. The result is cached for further use. The problem is that this cache is local to the compiling project and is cleared after the end of each build! Thus for every project built (even if multiple projects are built at once), this operation is performed, and takes a long long time. Attached is a patch to org.eclipse.jdt.internal.core.builder.ClasspathJar that caches the available packages per jar and reloads only if the modification time has changed. In our environment is cause a significat performance improvment. -- Tal Lev-Ami
Created attachment 5471 [details] The new version of ClasspathJar with the cache.
Good find, will consider for next milestone. Do you need it to be backported in 2.1.1 stream, or are you all set with your manual patch ? Kent - is the batch environment needing to be upgraded in a same fashion ?
I will appreciate a fix in the 2.1.1 stream as well. I don't want to keep maintaining this patch. Thanks, -- Tal Lev-ami
Created attachment 5490 [details] A small improvement - modification time comparison is exact and added size comparison
Released into HEAD. Still need to backport to 2.1.x stream. Thanks Tal
Backported to 2.1.1 maintenance stream. Thanks again.
Verified.
Candidate for 2.1.2
Verified in build 2.1.2 RC1 that code was added in the stream
Verified in build 2.1.2 RC2 that code is present