Hi fellow wiki editors!

To help newly registered users get more familiar with the wiki (and maybe older users too) there is now a {{Welcome to the wiki}} template. Have a look at it and feel free to add it to new users discussion pages (and perhaps your own).

I have tried to keep the template short, but meaningful. /Johan G

Talk:How the Nasal GC works

From FlightGear wiki
Jump to: navigation, search

Todo: discuss GC pressure traits

  • number of total objects
  • lifetime of objects (short lived vs. long lived)
  • functions with long argument lists vs. no parameter list (arg) or global variables
  • object complexity/nested objects (hashes, vectors)
  • expensive operations (such as repeated string concatenation)
  • funcs vs. hash.methods() (with shared variables via me)
  • anonymous funcs vs. named functions
  • memory pool freeing and reallocations
  • memory fragmentation

Todo: Publish GC Stats in property tree

  • total memory allocated
  • size of each pool
  • size of constants table
  • total references (active objects)
  • references per module/sub module
  • pool requests per frame/second/minute
  • pool requests per module
  • new naAlloc() allocations per frame/second/minute
  • new naAlloc() allocations per module
  • free() calls per module
  • pool size fluctuations per time unit (frame,second,minute)
  • time spent in each gc function
  • threading overhead (locking)?

Todo: Allow GC parameters to be tweaked via properties

  • minimum/maximum pool size (free blocks)
  • add property to disable collecting (just allocating)
  • add property to trigger GC