This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 164009 - Up-to-date checking regression when scanning sources
Summary: Up-to-date checking regression when scanning sources
Status: VERIFIED FIXED
Alias: None
Product: editor
Classification: Unclassified
Component: Parsing & Indexing (show other bugs)
Version: 6.x
Hardware: All All
: P3 blocker (vote)
Assignee: Vitezslav Stejskal
URL:
Keywords: PERFORMANCE
Depends on:
Blocks:
 
Reported: 2009-04-29 08:05 UTC by Pavel Flaska
Modified: 2009-06-30 12:08 UTC (History)
5 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
Profiler snapshot showing many calls to store() method (704.32 KB, application/octet-stream)
2009-05-12 16:29 UTC, Pavel Flaska
Details
Verify store() is not called when no change (21.55 KB, application/octet-stream)
2009-05-15 11:01 UTC, Pavel Flaska
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Pavel Flaska 2009-04-29 08:05:37 UTC
Since integrated Parsing API, there has been a regression in up-to-date check.
See current data at http://wiki.netbeans.org/JavaScanDesc#section-JavaScanDesc-UpToDateCheck
Comment 1 Pavel Flaska 2009-04-29 10:10:02 UTC
Details about 6.5 implementation:
http://www.netbeans.org/issues/show_bug.cgi?id=140680
Comment 2 Vitezslav Stejskal 2009-04-29 10:40:57 UTC
I'm looking into this.
Comment 3 Pavel Flaska 2009-04-30 14:31:12 UTC
I can confirm that touching class files is not a problem. They aren't touched at all during up-to-date check for roots without change (the same behavior as in 
6.5 even without md5). Tomas was right.

Automated test confirmation - RepositoryUpdater.testFileTouch(). To ensure, I has finished also manual testing.
Comment 4 Vitezslav Stejskal 2009-05-05 20:44:10 UTC
This should now be fixed. Please see issue #162706.

*** This issue has been marked as a duplicate of 162706 ***
Comment 5 Pavel Flaska 2009-05-12 16:23:51 UTC
I can confirm that it helps, but there are is still a regression in other areas. Reopening.
Comment 6 Pavel Flaska 2009-05-12 16:29:08 UTC
Created attachment 81988 [details]
Profiler snapshot showing many calls to store() method
Comment 7 Pavel Flaska 2009-05-12 16:32:06 UTC
There are about 918 calls of org.netbeans.modules.parsing.spi.indexing.support.IndexingSupport$MyAccessor.store(),
cosuming about 15% of scanning time. There is no change on source roots, expecting there is no need to flush the same
indexes to disk every time. Vita works on it.

See profiling snapshot above for further details.
Comment 8 Vitezslav Stejskal 2009-05-14 14:00:29 UTC
After applying the following two changes my profiler shows approx 20-30% improvement in the up-to-date check times.
Could you please retest? Thanks

http://hg.netbeans.org/jet-main/rev/8647c2fd851c
http://hg.netbeans.org/jet-main/rev/b28bd755079b

I don't think we can get much better then this in the indexers part. The most of the time is now spent in computing
classpaths dependencies (approx 75%) and so any further optimization should probably be targeted there.
Comment 9 Vitezslav Stejskal 2009-05-14 18:32:18 UTC
I just found a problem in PathRecognizers which was contributing to slow dependencies resolution. Fixing it slightly
improved the speed (approx by 25%). This gave me an idea that we could try to make it even faster (especially when
running the full IDE with all the ergonimized features turned on). It's unlikely to have a big effect when only java
cluster is on though.

http://hg.netbeans.org/jet-main/rev/ff8bb2220cc9
Comment 10 Pavel Flaska 2009-05-15 11:01:31 UTC
Created attachment 82177 [details]
Verify store() is not called when no change
Comment 11 Pavel Flaska 2009-05-15 11:22:58 UTC
Data are much better than in beta, see details at:
http://wiki.netbeans.org/Preview.jsp?page=JavaScanDesc

Tested on custom build 090515. Considering the issue as fixed and verified although the data are not still perfect. Separated issue will be filled if there is 
some space for immediate improvements. Thanks.

Comment 12 Quality Engineering 2009-05-15 18:56:58 UTC
Integrated into 'main-golden', will be available in build *200905151401* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/8647c2fd851c
User: Vita Stejskal <vstejskal@netbeans.org>
Log: #164009: do not flush lucene indices when there were no changes