IndexingMeasurement71
Contents |
Scanning of Java Projects
Scanning of OpenJDK J2SE
Indexing of Java Sources (63.6%) Parse(5.5%) IO(3.8%) Enter(2.2%) Analyze(33.5%) Generate(10.4%) IO(3.6%) Html+Javascript (6.2%) Tasklist (11.7%)
Scanning of nb-javac
Indexing of Java Sources (cold 45.4%, hot 45.1%): Parse (cold 6.4%, hot 3.1%) IO (cold 4.7%, hot 0.2%) Enter(cold 2.4%, hot 4.2%) Analyze(cold 23.0%, hot 21.7%) Process Annotations (cold 0%, hot 0%) Generate(cold 8,7%, hot 10.0%) IO (cold 2.7%, hot 3.2%) Html + Javascript (cold 8,1% + 0.9%, hot 13.5% + 1.6%) Tasklist (cold 4.5%, hot 6.1%) Lucene Index store (cold 1.5%, hot 2.5%) MimeType overhead (cold 0.1%, hot0.3%) TimeStamp check + list of files (cold 4.9%, hot 0.6%) Indexing of Jar files (cold 26.0%, hot 25.9%)
Scanning of java.source modules + dependencies
Indexing of Java Sources (63.1%): Parse (13.2%) IO (10.4%) Enter(7.5%) Analyze(18.3%) Process Annotations (7.6%) Generate(10.9%) IO (4.3%) Html + Javascript (5.6% + 1.2%) Tasklist (8.4%) MimeType overhead (2.3%) TimeStamp check + list of files (0.6%) Indexing of Jar files (3.7%)
Up to date check java.source + dependencies
Project queries (13.7s) TimeStamp check + list of files (1.4s) Adding recursive listener (1.2s) Java Index Initialization (1.1s) CoS index initialization (1.7s) File index initialization (0,4s) Other indexer initialization (0.2s)
Scanning of Glassfish main with all required projects 2GB heap
Indexing of Java Sources (40%) Compile On Save Indexer (Project queries) (20%) TaskList (10%) HTML (14%) TimeStamp check + list of files (3%) Preparation of indexers (3%)
Up to date check of Glassfish main with all required projects 2GB heap
TimeStamp check + list of files (3.4%) Adding recursive listeners (2.5%) Compile On Save Indexer (Project queries) (29%) Binaries up to date check (17%) - spent mostly in ProxyBinaryIndexer Java Indexer initialization (5.7%)
Scanning of PHP Projects
Zend Framework
PHP files: 4311 HTML files: 273 JS files: 1831 CSS files: 259 YAML files: 10 JSON files: 12
Indexing took 120s
PHP 28.7% HML 14.1% (12.2% in HTMLErrorFilter.filter()) JS 3.5% CSS 1% YAML 0.1% TaskIndex 13.3% DataObject.find() 8.64%
Drupal
PHP files: 108 HTML files: 3 JS files: 85 CSS files: 123
Indexing took 36s
PHP 33.8% HML 16.5% (14.6% in HTMLErrorFilter.filter()) JS 4.7% CSS 3.5%
DataObject.find() 4%
Symfony + PHP HTML Documentation
PHP files: 2104 HTML files: 11726 JS files: 3 CSS files: 8
Indexing took 272s.
PHP 4.8% HML 45.8% (33% in HTMLErrorFilter.filter()) JS 3% CSS 1.2% TaskIndexer 7.1%
Web project (UI only)
User-interface part of a J2EE application; backend was used from binaries. Maven based.
Contents:
- Web content: roots = 21, JSP files= 978
- java sources: 2703
- HTML files: 0
- Web descriptors: 2
- JAR dependencies: 329
- Maven projects: 44
Cached content (the entire project + MVN local repository was accessed and presumably in OS caches during the scan)
First open | Subsequent opens | ||||
---|---|---|---|---|---|
Phase | Component / method | Percent | Notes | Percent | Notes |
Scan Sources | Total | 55% | 41.5% | ||
Crawler | 0.5% (850ms) | 8% (11,066ms) | |||
Java Indexer | 22.7% | SuperOnePassCompilerWorker: 14.2%
(enter: 6%, analyze: 3.3%, generate: 2.2%) | 1.8% | ||
JavaCustomIndexerFactory.scanStarted | 3.26% | ||||
Compile on save | 6.3% (16,881ms) | 16% (21,550ms) | SourceForBinaryQuery (15%) | ||
Embeddings | 6% | 0% | |||
Storing (I/O) | 10.3% | 0% | |||
Scan Binaries | Total | 54% | 54.2% | ||
Java Binary Indexer | 17.7% | I/O 15.3% | 3.1% | ||
Spring Binary Indexer | 31.2% | SourceForBinaryQuery (28%; 86,472ms),
J2SELibrarySourceFBQ (15%), j2ee.deploymentSFBQ (9%) | 18.4% | SourceForBinaryQuery: (15.6%; 21,222ms), J2SELibrarySourceFBQ (7.8%), j2ee.deploymentSFBQ (5%) | |
getMimeType | 3.2-8.2% | I/O 2.6-6% | 17.6% |
Note: times from 'reopen' test are rescaled as if parsing took 100%; in fact, the profiler measured 33% waiting on lock - profiling was not stopped on time]
Enterprise application backend
Contents:
- 72 java roots
- java sources: 2889
- HTML files: 19
- Web descriptors: 2
- JAR dependencies: 306
- Maven projects: 97
Cached content (the entire project + MVN local repository was accessed and presumably in OS caches during the scan)
Subsequent opens | |||
---|---|---|---|
Phase | Component / method | Percent | Notes |
Scan Sources | Total | 42.2% | |
Crawler | 0.6% (1,724ms) | ||
addRecursiveListener | 1.7% (4,764ms) | ||
Compile-on-save | 32.2% | SourceForBinaryQuery.findSourceRoots (29.6%) | |
JavaCustomIndexer | 3.8% | URL.equals (1.5%, 4,526ms) | |
Scan Binaries | Total | 47.9% | |
ClassPath.findResource | 43.8% | Through SpringBinaryIndexer.findVersion | |
getMIMEType | 2.5% (7,417ms) |
RichFaces sources & examples
Contents:
- 12 Web roots (applications)
- Maven projects: 88
- Source roots: 59
- Java files: 3521
- JAR dependencies: 170
First open | Subsequent opens | ||||
---|---|---|---|---|---|
Phase | Component / method | Percent | Notes | Percent | Notes |
Scan Sources | Total | 65.7% | 25% | ||
HtmlHintsProvider.computeErrors | 27.2% (63,601ms) | ||||
RepositoryUpdater.storeChanges | 17.1% | I/O | |||
Crawler | 0.2% | 2.65% | |||
addRecursiveListener | 2.15% (400 ms) | ||||
Compile-on-save | 8% | SourceForBinaryQuery.findSourceRoots (8%) | |||
JavaCustomIndexer | 12.4% | SuperOnePassCompileWorker: 7.2%
SourceAnalyser.store: 4.6% | 3.82% | ||
Scan Binaries | Total | 17.5% | 58.5% | ||
getMIMEType | 1.7% | 39.7% (8,873ms) | through ProxyBinaryIndexerFactory.supports()
AbstractFileObject.getInputStream (33.22%) | ||
FileObject.getChildren() | 0.6% | 6.14% | |||
LuceneIndex._store | 11% | I/O | 6% | I/O |
Note: the percentage was scaled up for reopen; originally, the Parsing thread processing only took 60.2% of the time
There was another active thread during reopen, ErrorAnnotator worker':
- live 60% of the time,
- QuerySupport.findRoots() - 8.4%, 2,900ms
- errors.Utilities.findIndexedRootsUnderDirectory - 37.2%, 13,500ms
- SourceForBinaryQuery.findSourceRoots2() - 28.4%, 10163ms