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.

Reply via email to