Changeset 254 for trunk/thune/gc.c

Show
Ignore:
Timestamp:
08/23/06 20:34:11 (2 years ago)
Author:
krobillard
Message:

Thune - GC report now shows number of bytes used & wasted.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/thune/gc.c

    r245 r254  
    436436void ur_gcReport( UrlanEnv* env ) 
    437437{ 
    438     dprint( "  Array    Buf       Max Used  Free\n" ); 
    439     dprint( "  ---------------------------------\n" ); 
    440     dprint( "  Blocks   %p   %4d   %4d\n", env->blocks.arr.ptr.v, 
    441                                            env->blocks.arr.used, 
    442                                            env->blocks.freeCount ); 
    443     dprint( "  Binaries %p   %4d   %4d\n", env->bin.arr.ptr.v, 
    444                                            env->bin.arr.used, 
    445                                            env->bin.freeCount ); 
     438    int used; 
     439    int unused; 
     440 
     441    dprint( "  Array    Buf       Max Used  Free    Bytes  Bytes Wasted\n" ); 
     442    dprint( "  --------------------------------------------------------\n" ); 
     443    { 
     444        UBinary* it  = (UBinary*) env->bin.arr.ptr.v; 
     445        UBinary* end = it + env->bin.arr.used; 
     446 
     447        used = 0; 
     448        unused = 0; 
     449        while( it != end ) 
     450        { 
     451            if( it->avail > 0 ) 
     452            { 
     453                used   += it->used; 
     454                unused += it->avail - it->used; 
     455            } 
     456            ++it; 
     457        } 
     458        dprint( "  Binaries %p   %4d   %4d   %7d   %7d\n", 
     459                env->bin.arr.ptr.v, 
     460                env->bin.arr.used, 
     461                env->bin.freeCount, 
     462                used, unused ); 
     463    } 
     464    { 
     465        UBlock* it  = (UBlock*) env->blocks.arr.ptr.v; 
     466        UBlock* end = it + env->blocks.arr.used; 
     467 
     468        used = 0; 
     469        unused = 0; 
     470        while( it != end ) 
     471        { 
     472            if( it->avail > 0 ) 
     473            { 
     474                used   += it->used; 
     475                unused += it->avail - it->used; 
     476            } 
     477            ++it; 
     478        } 
     479        dprint( "  Blocks   %p   %4d   %4d   %7d   %7d\n", 
     480                env->blocks.arr.ptr.v, 
     481                env->blocks.arr.used, 
     482                env->blocks.freeCount, 
     483                used * 16, unused * 16 ); 
     484    } 
    446485    dprint( "\n" ); 
    447486} 
     
    609648#ifdef GC_REPORT 
    610649    dprint( "  %d passes\n\n", pass ); 
    611     ur_gcReport(); 
     650    ur_gcReport( env ); 
    612651#endif 
    613652}