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.
