Huge pages and druntime parameters

Rainer Schuetze r.sagitario at gmx.de
Fri Sep 27 06:33:01 PDT 2013



On 27.09.2013 02:31, Martin Nowak wrote:
> Running dmd with huge page backed malloc resulted in about 10% faster
> compilations.
> This looks very promising though other tests with some D GC
> microbenchmarks did not benefit from huge pages.
> You can read more about this here.
> http://www.ibm.com/developerworks/systems/library/es-lop-leveragepages/
>
> I'm interested in adding a runtime parameter that would advise the GC to
> preferably use huge pages as backing memory.
> There are a number of other interesting runtime parameters, like max
> heap size, GC grow policies, turning on statistics, so I wonders how to
> make them available.

An application that needs to allocate ore than a few MB is currently 
often slowed down considerably by early collections of the GC. Being 
able to use larger values for initial memory and pool size increments 
would help a lot here.

> Java seems to use -XX:+UseLargePages and -Xmx for the maximum heap size.
> GHC uses a nice scheme where runtime parameters passed via command line
> are embraced by +RTS arg1 arg2 -RTS. They also require to link-in
> support for this.
> http://www.haskell.org/ghc/docs/7.0.1/html/users_guide/runtime-control.html
> Any good ideas for druntime?

For the precise GC I moved the configuration variable(s) to its own 
module: https://github.com/rainers/druntime/blob/gcx_precise/src/gc/config.d
This module allows configuration via environment variables, but you can 
change the defaults by adding a file with module declaration "gc.config" 
and other settings.


More information about the Digitalmars-d mailing list