unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* GC improvements
@ 2005-12-20 16:32 Ludovic Courtès
  2005-12-23 11:29 ` Han-Wen Nienhuys
  0 siblings, 1 reply; 9+ messages in thread
From: Ludovic Courtès @ 2005-12-20 16:32 UTC (permalink / raw)


Hi,

I did some profiling with the workload I described earlier[0].

When using the three patches I sent recently[*], around 35% of the
execution time is spent in memory management:

   %   cumulative   self              self     total           
  time   seconds   seconds    calls   s/call   s/call  name    
  28.10     16.63    16.63    41385     0.00     0.00  ceval
  18.02     27.29    10.66    32399     0.00     0.00  scm_i_sweep_card
   8.54     32.34     5.06  4729114     0.00     0.00  scm_cell
   5.11     35.37     3.03  2737955     0.00     0.00  scm_ilookup
   3.23     37.28     1.91     7086     0.00     0.00  scm_i_init_card_freelist
   2.96     39.03     1.75   383266     0.00     0.00  scm_gc_mark_dependencies
   2.64     40.59     1.56      657     0.00     0.01  scm_i_mark_weak_vector_non_weak

Commenting out explicit calls to `scm_gc ()' and `scm_i_gc ()' doesn't
make a big difference.

The workload I used is quite similar to what happens at startup time:
new objects are created, new symbols are defined, and that's it.  The
symbols created (and even the numbers created) are expected to stay
alive until the end of the program.  Thus, intuitively, one might say
that there is nothing to collect in this program, so no need to
mark/sweep all the time.

Therefore, my question is: how can we improve on this?

As I understand it, generational GC could help solve this.  However,
being unfamiliar with this, I fail to see how this could be integrated,
and how much work is required.

Thanks,
Ludovic.

[0] http://lists.gnu.org/archive/html/guile-devel/2005-12/msg00093.html

[*] Improved `scm_from_locale_symbol ()' + `guile-reader', fixed
    FREE_COUNT in `scm_i_sweep_card ()', fixed CELLS_COLLECTED in
    `scm_i_sweep_some_cards ()')


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2006-01-06 20:22 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-12-20 16:32 GC improvements Ludovic Courtès
2005-12-23 11:29 ` Han-Wen Nienhuys
2005-12-23 15:40   ` 1.8 [was: GC improvements] Andy Wingo
2005-12-24  0:59     ` 1.8 Kevin Ryde
2006-01-03 10:16   ` GC improvements Ludovic Courtès
2006-01-04  1:03     ` Han-Wen Nienhuys
2006-01-04 16:18       ` Ludovic Courtès
2006-01-05 14:47         ` Ludovic Courtès
2006-01-06 20:22           ` Han-Wen Nienhuys

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).