On Fri, 9 Aug 2024 10:14:10 GMT, Johan Sjölen <jsjo...@openjdk.org> wrote:
>> - `VMATree` is used instead of `SortedLinkList` in new class >> `VirtualMemoryTrackerWithTree`. >> - A wrapper/helper `RegionTree` is made around VMATree to make some calls >> easier. >> - Both old and new versions exist in the code and can be selected via >> `MemTracker::set_version()` >> - `find_reserved_region()` is used in 4 cases, it will be removed in >> further PRs. >> - All tier1 tests pass except one ~that expects a 50% increase in committed >> memory but it does not happen~ https://bugs.openjdk.org/browse/JDK-8335167. >> - Adding a runtime flag for selecting the old or new version can be added >> later. >> - Some performance tests are added for new version, VMATree and Treap, to >> show the idea and should be improved later. Based on the results of >> comparing speed of VMATree and VMT, VMATree shows ~40x faster response time. > > src/hotspot/share/nmt/regionsTree.hpp line 46: > >> 44: using Node = VMATree::TreapNode; >> 45: >> 46: class NodeHelper : public Node { > > This shouldn't inherit from `Node` and then have each instance be cast into > `NodeHelper`. Make into `class Utils : public AllStatic`. Alternatively create it by composition: ```c++ class NodeHelper { Node& node; NodeHelper(Node* node) : node(*node) {} // All of the methods }; { // Some Node* node NodeHelper nh(node); // Use nh } ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/20425#discussion_r1711643629