Home | History | Annotate | Line # | Download | only in Examples
      1 The following is an example of rb_malloc.d.
      2 
      3 WARNING: This script is not 100% accurate; This prints graphical
      4 representations of libc malloc() byte distributions by "recent" Ruby operation, 
      5 which we hope will be usually correct. This is an experimental script that may
      6 be improved over time.
      7 
      8 Here we can see it running on Code/Ruby/func_abc.rb
      9 
     10 # rb_malloc.d -c ./func_abc.rb
     11 Tracing... Hit Ctrl-C to end.
     12 Function A
     13 Function B
     14 Function C
     15 Ruby malloc byte distributions by recent Ruby operation,
     16    func_abc.rb, method, Object::print 
     17            value  ------------- Distribution ------------- count    
     18                1 |                                         0        
     19                2 |@@@@@@@@@@@@@@@@@@@@                     1        
     20                4 |                                         0        
     21                8 |                                         0        
     22               16 |@@@@@@@@@@@@@@@@@@@@                     1        
     23               32 |                                         0        
     24 
     25    func_abc.rb, method, Module::method_added 
     26            value  ------------- Distribution ------------- count    
     27                8 |                                         0        
     28               16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
     29               32 |                                         0        
     30 
     31    ., objnew, fatal 
     32            value  ------------- Distribution ------------- count    
     33                1 |                                         0        
     34                2 |@                                        1        
     35                4 |@                                        1        
     36                8 |@@@                                      2        
     37               16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@             22       
     38               32 |@@@@@@                                   5        
     39               64 |                                         0        
     40 
     41    func_abc.rb, method, IO::write 
     42            value  ------------- Distribution ------------- count    
     43             2048 |                                         0        
     44             4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
     45             8192 |                                         0        
     46 
     47    ., objnew, SystemStackError 
     48            value  ------------- Distribution ------------- count    
     49                1 |                                         0        
     50                2 |                                         3        
     51                4 |@@@@                                     32       
     52                8 |@@                                       15       
     53               16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          279      
     54               32 |@@@                                      30       
     55               64 |                                         2        
     56              128 |                                         0        
     57 
     58    ., objnew, NoMemoryError 
     59            value  ------------- Distribution ------------- count    
     60                1 |                                         0        
     61                2 |@                                        3        
     62                4 |@@@                                      17       
     63                8 |@@@@@@                                   37       
     64               16 |@@@@@@@@@@@@@@@@@@@@@@@@                 146      
     65               32 |@@                                       13       
     66               64 |                                         2        
     67              128 |@@@                                      20       
     68              256 |                                         0        
     69              512 |                                         0        
     70             1024 |                                         1        
     71             2048 |                                         0        
     72 
     73    ., objnew, ThreadGroup 
     74            value  ------------- Distribution ------------- count    
     75                1 |                                         0        
     76                2 |                                         8        
     77                4 |@@@                                      224      
     78                8 |@                                        93       
     79               16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              1806     
     80               32 |@@@@@@@@                                 496      
     81               64 |                                         3        
     82              128 |                                         2        
     83              256 |                                         0        
     84              512 |                                         1        
     85             1024 |                                         0        
     86 
     87    ., objnew, Object 
     88            value  ------------- Distribution ------------- count    
     89                1 |                                         0        
     90                2 |                                         35       
     91                4 |@@@                                      291      
     92                8 |@@@                                      300      
     93               16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           2679     
     94               32 |@@                                       215      
     95               64 |                                         7        
     96              128 |                                         0        
     97 
     98    ruby, startup, - 
     99            value  ------------- Distribution ------------- count    
    100                1 |                                         0        
    101                2 |@                                        10       
    102                4 |@@@                                      34       
    103                8 |@@@                                      38       
    104               16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          409      
    105               32 |@@                                       30       
    106               64 |                                         1        
    107              128 |                                         0        
    108              256 |                                         0        
    109              512 |                                         0        
    110             1024 |                                         2        
    111             2048 |                                         0        
    112             4096 |                                         0        
    113             8192 |                                         0        
    114            16384 |                                         0        
    115            32768 |                                         0        
    116            65536 |                                         0        
    117           131072 |                                         1        
    118           262144 |                                         0        
    119 
    120 
    121