tools.memory: display some more code heap stats
parent
87665c8f40
commit
eed0b27d5d
|
@ -55,6 +55,8 @@ IN: tools.memory
|
||||||
{ "Mark stack:" [ mark-stack>> kilobytes ] }
|
{ "Mark stack:" [ mark-stack>> kilobytes ] }
|
||||||
} object-table. ;
|
} object-table. ;
|
||||||
|
|
||||||
|
PRIVATE>
|
||||||
|
|
||||||
: data-room. ( -- )
|
: data-room. ( -- )
|
||||||
"== Data heap ==" print nl
|
"== Data heap ==" print nl
|
||||||
data-room data-heap-room memory>struct {
|
data-room data-heap-room memory>struct {
|
||||||
|
@ -64,14 +66,6 @@ IN: tools.memory
|
||||||
[ misc-room. ]
|
[ misc-room. ]
|
||||||
} cleave ;
|
} cleave ;
|
||||||
|
|
||||||
: code-room. ( -- )
|
|
||||||
"== Code heap ==" print nl
|
|
||||||
code-room mark-sweep-sizes memory>struct mark-sweep-table. ;
|
|
||||||
|
|
||||||
PRIVATE>
|
|
||||||
|
|
||||||
: room. ( -- ) data-room. nl code-room. ;
|
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
: heap-stat-step ( obj counts sizes -- )
|
: heap-stat-step ( obj counts sizes -- )
|
||||||
|
@ -265,3 +259,36 @@ INSTANCE: code-blocks immutable-sequence
|
||||||
: lookup-return-address ( addr -- code-block )
|
: lookup-return-address ( addr -- code-block )
|
||||||
dup in-code-heap?
|
dup in-code-heap?
|
||||||
[ \ code-blocks get (lookup-return-address) ] [ drop f ] if ;
|
[ \ code-blocks get (lookup-return-address) ] [ drop f ] if ;
|
||||||
|
|
||||||
|
<PRIVATE
|
||||||
|
|
||||||
|
: code-block-stats ( code-blocks -- counts sizes )
|
||||||
|
H{ } clone H{ } clone
|
||||||
|
[ '[ [ size>> ] [ type>> ] bi [ nip _ inc-at ] [ _ at+ ] 2bi ] each ]
|
||||||
|
2keep ;
|
||||||
|
|
||||||
|
: blocks ( n -- str ) number>string " blocks" append ;
|
||||||
|
|
||||||
|
: code-block-table-row ( string type counts sizes -- triple )
|
||||||
|
[ at 0 or blocks ] [ at 0 or kilobytes ] bi-curry* bi 3array ;
|
||||||
|
|
||||||
|
: code-block-table. ( counts sizes -- )
|
||||||
|
[
|
||||||
|
{
|
||||||
|
{ "Optimized code:" +optimized+ }
|
||||||
|
{ "Unoptimized code:" +unoptimized+ }
|
||||||
|
{ "Inline caches:" +pic+ }
|
||||||
|
{ "Profiling stubs:" +profiling+ }
|
||||||
|
}
|
||||||
|
] 2dip '[ _ _ code-block-table-row ] { } assoc>map
|
||||||
|
simple-table. ;
|
||||||
|
|
||||||
|
PRIVATE>
|
||||||
|
|
||||||
|
: code-room. ( -- )
|
||||||
|
"== Code heap ==" print nl
|
||||||
|
code-room mark-sweep-sizes memory>struct mark-sweep-table. nl
|
||||||
|
code-blocks code-block-stats code-block-table. ;
|
||||||
|
|
||||||
|
: room. ( -- )
|
||||||
|
data-room. nl code-room. ;
|
||||||
|
|
Loading…
Reference in New Issue