|
Size: 3693
Comment:
|
← Revision 24 as of 2009-09-20 21:55:12 ⇥
Size: 3725
Comment: converted to 1.6 markup
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 3: | Line 3: |
| ||[http://issues.apache.org/jira/browse/HARMONY-5280 HARMONY-5280]||Unpack jar files||[http://issues.apache.org/jira/secure/ViewProfile.jspa?name=mcfirst Pavel] is to comment|| ||[http://issues.apache.org/jira/browse/HARMONY-5281 HARMONY-5281]||Read jar files by means of memory mapping||[http://issues.apache.org/jira/secure/ViewProfile.jspa?name=nsnaumova Natalya] is to comment|| ||[http://issues.apache.org/jira/browse/HARMONY-5284 HARMONY-5284]||Improve Class.getMethod() lookup speed and related field lookup speed||[http://issues.apache.org/jira/secure/ViewProfile.jspa?name=varlax Alexey] is to comment|| ||[http://issues.apache.org/jira/browse/HARMONY-5356 HARMONY-5356]||Delay a method recompilation||[http://issues.apache.org/jira/secure/ViewProfile.jspa?name=aleksey.shipilev Aleksey] is to resolve|| ||[http://issues.apache.org/jira/browse/HARMONY-5481 HARMONY-5481]||Collect hash statistics||[http://issues.apache.org/jira/secure/ViewProfile.jspa?name=mcfirst Pavel] is to review|| ||[http://issues.apache.org/jira/browse/HARMONY-5499 HARMONY-5499]||Configure hash size||[http://issues.apache.org/jira/secure/ViewProfile.jspa?name=mcfirst Pavel] is to review and commit|| ||[http://issues.apache.org/jira/browse/HARMONY-4569 HARMONY-4569]||Replace array partial copies with relative start/end postions, etc||Not assigned|| |
||[[http://issues.apache.org/jira/browse/HARMONY-5280|HARMONY-5280]]||Unpack jar files||[[http://issues.apache.org/jira/secure/ViewProfile.jspa?name=mcfirst|Pavel]] is to comment|| ||[[http://issues.apache.org/jira/browse/HARMONY-5281|HARMONY-5281]]||Read jar files by means of memory mapping||[[http://issues.apache.org/jira/secure/ViewProfile.jspa?name=nsnaumova|Natalya]] is to comment|| ||[[http://issues.apache.org/jira/browse/HARMONY-5284|HARMONY-5284]]||Improve Class.getMethod() lookup speed and related field lookup speed||[[http://issues.apache.org/jira/secure/ViewProfile.jspa?name=varlax|Alexey]] is to comment|| ||[[http://issues.apache.org/jira/browse/HARMONY-5356|HARMONY-5356]]||Delay a method recompilation||[[http://issues.apache.org/jira/secure/ViewProfile.jspa?name=aleksey.shipilev|Aleksey]] is to resolve|| ||[[http://issues.apache.org/jira/browse/HARMONY-5481|HARMONY-5481]]||Collect hash statistics||[[http://issues.apache.org/jira/secure/ViewProfile.jspa?name=mcfirst|Pavel]] is to review|| ||[[http://issues.apache.org/jira/browse/HARMONY-5499|HARMONY-5499]]||Configure hash size||[[http://issues.apache.org/jira/secure/ViewProfile.jspa?name=mcfirst|Pavel]] is to review and commit|| ||[[http://issues.apache.org/jira/browse/HARMONY-4569|HARMONY-4569]]||Replace array partial copies with relative start/end postions, etc||Not assigned|| |
| Line 26: | Line 26: |
| * Think of unpacking jar files, make the size of unpacked jars reasonable, [http://issues.apache.org/jira/browse/HARMONY-5280 HARMONY-5280]. | * Think of unpacking jar files, make the size of unpacked jars reasonable, [[http://issues.apache.org/jira/browse/HARMONY-5280|HARMONY-5280]]. |
| Line 31: | Line 31: |
| * Remove duplicated jar reads, [http://issues.apache.org/jira/browse/HARMONY-5285 HARMONY-5285]. * Delay a method recompilation, [http://issues.apache.org/jira/browse/HARMONY-5356 HARMONY-5356]. |
* Remove duplicated jar reads, [[http://issues.apache.org/jira/browse/HARMONY-5285|HARMONY-5285]]. * Delay a method recompilation, [[http://issues.apache.org/jira/browse/HARMONY-5356|HARMONY-5356]]. |
| Line 37: | Line 37: |
| [[Anchor(CDS)]] | <<Anchor(CDS)>> |
Patches
JIRA |
Optimization |
Owned |
Unpack jar files |
Pavel is to comment |
|
Read jar files by means of memory mapping |
Natalya is to comment |
|
Improve Class.getMethod() lookup speed and related field lookup speed |
Alexey is to comment |
|
Delay a method recompilation |
Aleksey is to resolve |
|
Collect hash statistics |
Pavel is to review |
|
Configure hash size |
Pavel is to review and commit |
|
Replace array partial copies with relative start/end postions, etc |
Not assigned |
Startup Performance Measurement
- Measure the first startup.
- Measure a subsequent startup of the same application.
- Measure a subsequent startup of a different application which reuses some classes.
Applications
- Eclipse startup is known for bothering users. A subsequent Eclipse startups should be improved.
- Some specs include startup measurements into final score. It seems that subsequent runs would help improving the peak score.
Ideas
- Use pools mapped to files to speed up loading of classes from the boot class path. Alexei Shipilev knows well dll memory layout to make mapping at the same virtual address work. Generally we should allocate the mappable chunk as early as possible, before most dynamic libraries are loaded. Even if this fails, this is no more than optimization and VM can proceed without it.
- String pool may be serialized as well.
- Precompile / save jitted code for later use.
- Store compiled code in DLL/SO formats. Do not reinvent formats for code. If VM has a compiler, why should not it have a linker?
- Use single boot class path cache.
Think of unpacking jar files, make the size of unpacked jars reasonable, HARMONY-5280.
- Remove debugging information from class files.
- Obfuscate private and undocumented class fields.
- Reorder boot class path putting important jars first.
- Save VM state dumping heap memory, thread stacks, states of files, sockets and other open resources. While the task look heavy, for a particular application use case this might be doable.
Remove duplicated jar reads, HARMONY-5285.
Delay a method recompilation, HARMONY-5356.
<Integrate Sergey's thoughts>
Thanks Pavel Pervov, Alexei Shipilev, Eugenia Maenkova, Andrey Yakushev, Sergey Kuksenko, Natalya Naumova, Gregory Shimansky.
Class Data Sharing Plan
- Refactor VM startup to use pools for the component manager.
- Add pool serialization to the component manager.
- Serialize a string pool.
- Serialize prepared classes.
- Fix bugs.