commit | 8632d2a982af65b7c3a3c3c02bd42ab858485732 | [log] [tgz] |
---|---|---|
author | Joerg Kubitz <jkubitz-eclipse@gmx.de> | Mon Dec 06 12:32:23 2021 +0100 |
committer | Andrey Loskutov <loskutov@gmx.de> | Sun Feb 13 17:40:40 2022 -0500 |
tree | d7a4f76a19bffa56fccb6b2a7356245a8e6c5d3d | |
parent | 86246531c137db734ae439f4045287e7dabe001a [diff] |
Bug 576646 - JavaModel save: improve state.dat filesize * encode char[] as UTF8 instead of UTF16. (accessRule.pattern is typically ASCII.) * encode integers as byte/short if the range is appropriate. (indices are typically small numbers.) * encode typical accessRule.problemId values with single byte. (normally only these problemIDs are used.) * encode qualified Names as commonlength of previous name+suffix. (qualified names are typically sorted so that package is same.) * encode repeated Names as index into automatic dictionary. (segment names are repetitive.) => File size is typically decreased to 50%. File size is decreased by even much larger factor for projects with many access rules. These optimizations are purely byte based heuristics and can still be further compressed with general purpose entropy encoders. Performance of read and safe is both >20% better. Note that the bottle neck during reading is the LRUCache in JavaModelManager.getAccessRuleForProblemId() Change-Id: I3c1d47eeae6c12314d4acfcc9e641e30fb29f1cf Reviewed-on: https://git.eclipse.org/r/c/jdt/eclipse.jdt.core/+/188566 Tested-by: Andrey Loskutov <loskutov@gmx.de> Tested-by: JDT Bot <jdt-bot@eclipse.org> Reviewed-by: Andrey Loskutov <loskutov@gmx.de>
This is the core part of Eclipse's Java development tools. It contains the non-UI support for compiling and working with Java code, including the following:
For more information and important links, refer to the [JDT wiki page] 1 or the [JDT project overview page] 2.