#
d230b5fd |
|
08-Jul-2019 |
Augustin Cavalier <waddlesplash@gmail.com> |
packagefs: Use object caches for the most used node classes. Slab statistics from KDL show that on a stock nightly image (i.e. no additional packages besides the standards installed) there are 43848 *objects* (not bytes) in the PackageNodeAttribute cache, and 25090 in the PackageFile cache, so this seems more than worth it. The last commit seems to reduce memory usage at boot by about 1%, this commit seems to not affect it at all; but it is a significant performance optimization and on systems with more packages installed the effect may be very noticeable. Change-Id: I676a642ed6003f82b14396e1f02684575d899362
|
#
11cecf98 |
|
12-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Add support for hpkg format V1 * Add union-like class PackageData which wraps the V1 and V2 BPackageData classes. * GlobalFactory: Create a data reader depending on the data format version. * Package: Add a loader for V1 format and try that, if the other one fails.
|
#
d07c930c |
|
11-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Share string instances globally Introduce a class String which refers to shared private data that is registered in a global hash table (in class StringPool) and use the class consequently. This eliminates duplicate allocations for the same string and also speeds up tests for equality. There's quite a bit overhead for the management structures (apparently even more than for the string data itself), but due to almost all strings being used multiple times this still almost halves the memory usage for string data.
|
#
1e7416d9 |
|
11-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Organize sources into subdirectories
|
#
11cecf980b5ee6a21563a7e78d4f2238a8b4d90f |
|
12-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Add support for hpkg format V1 * Add union-like class PackageData which wraps the V1 and V2 BPackageData classes. * GlobalFactory: Create a data reader depending on the data format version. * Package: Add a loader for V1 format and try that, if the other one fails.
|
#
d07c930c1eb710289922edd3abf5244c259a86c6 |
|
11-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Share string instances globally Introduce a class String which refers to shared private data that is registered in a global hash table (in class StringPool) and use the class consequently. This eliminates duplicate allocations for the same string and also speeds up tests for equality. There's quite a bit overhead for the management structures (apparently even more than for the string data itself), but due to almost all strings being used multiple times this still almost halves the memory usage for string data.
|
#
1e7416d9b3846396e2f7d6552e37d72664cd6853 |
|
11-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Organize sources into subdirectories
|