4 ms·
If I were to run a performance-critical application, I'd definitely tune the GC accordingly. It's why the JVM offers several garbage collectors in the first pla
by rbehrends 10y ago
If I were to run a performance-critical application, I'd definitely tune the GC accordingly. It's why the JVM offers several garbage collectors in the first place, for example.
Also, GCed languages aren't prevented from using memory pools, but often they are not part of their common libraries, because there's less need for them.
- flukus 10y ago> If I were to run a performance-critical application, I'd definitely tune the GC accordingly. But you have to tune it for the performance of the whole application (AFAIK), you can't tune it for an individual algorithm like you can with c. It's a one size fits all approach.
- rbehrends 10y ago1. That goes towards the other point that I made [1] about how microbenchmarks have only limited relevance for the performance of large applications (the performance of memory pools can also change as a result; as an extreme case, multiple large memory pools can lead to swapping). 2. Many GCs allow you to tune performance for individual computations. For example, Erlang allows you to basically start a new lightweight process with a heap large enough so that collection isn't needed and to throw it away at the end; OCaml's GC parameters can be changed while the program is running. [1] https://news.ycombinator.com/item?id=13747876 https://news.ycombinator.com/item?id=13747876