ktf wrote:

@ChuanqiXu9 I have added a simple unit test, which has 100% code coverage as 
far as I can tell and covers the usecase the container will be used for.

@nikic This is in the context of improving the memory used when loading 
modules, in particular my usecase is the runtime overhead of the ROOT/cling C++ 
interpreter / I/O subsystem.

Without this patch, the initialisation of the system, which on startup loads a 
bunch of unneeded modules, grows to up 80 MB as you can see from:

![image](https://github.com/llvm/llvm-project/assets/10544/9c2c7dc3-8e64-403c-a923-97a40cd8f1ff)

With this patch applied, the total overhead goes down to 52MB:

![image](https://github.com/llvm/llvm-project/assets/10544/56111b37-fa0e-415d-8d00-0bcd818db3aa)

As you can see the `ROOT::Internal::GetROOT2()` initialisation method goes from 
67 to 30 MB (with some of the allocations which are now moved later on, due to 
the lazy allocation of the PagedVector).

https://github.com/llvm/llvm-project/pull/66430
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to