mirror of
https://github.com/urbit/shrub.git
synced 2024-12-25 13:04:17 +03:00
jam: add commented-out functionality to count size of atom
This is a convenient way to count memory usage of noun by simplying running `(jam 1.337 noun-1 noun-2 ... ~)`. This should be a hint, but for debugging this is sufficient.
This commit is contained in:
parent
fa6748a7e1
commit
6c3b7aeef5
@ -6,6 +6,40 @@
|
|||||||
u3_noun
|
u3_noun
|
||||||
u3qe_jam(u3_atom a)
|
u3qe_jam(u3_atom a)
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
|
if (c3y == u3du(a) && 1337 == u3h(a)) {
|
||||||
|
c3_w siz_w, tot_w = 0;
|
||||||
|
u3_noun som;
|
||||||
|
for ( som = u3t(a); c3y == u3du(som); som = u3t(som) ) {
|
||||||
|
siz_w = u3a_count_noun(u3h(som));
|
||||||
|
tot_w += siz_w;
|
||||||
|
if ( 0 == siz_w ) {
|
||||||
|
u3l_log("item: B/0\r\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
u3a_print_memory(stderr, "item", siz_w);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( u3_blip != som ) {
|
||||||
|
u3l_log("forgot to terminate list!\r\n");
|
||||||
|
}
|
||||||
|
c3_w mem_w = u3h_count(u3R->cax.har_p);
|
||||||
|
|
||||||
|
for ( som = u3t(a); c3y == u3du(som); som = u3t(som) ) u3a_discount_noun(u3h(som));
|
||||||
|
u3h_discount(u3R->cax.har_p);
|
||||||
|
|
||||||
|
u3a_print_memory(stderr, "total", tot_w);
|
||||||
|
u3a_print_memory(stderr, "memoization cache", mem_w);
|
||||||
|
u3h_root* har_u = u3to(u3h_root, u3R->cax.har_p);
|
||||||
|
u3l_log("memoization entries: %d\r\n", har_u->use_w);
|
||||||
|
c3_w diff = (u3R->hat_p < u3R->cap_p) ?
|
||||||
|
(u3R->cap_p - u3R->hat_p) :
|
||||||
|
(u3R->hat_p - u3R->cap_p);
|
||||||
|
u3a_print_memory(stderr, "unused free", diff);
|
||||||
|
return tot_w;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
c3_w bit_w, *sal_w;
|
c3_w bit_w, *sal_w;
|
||||||
c3_w* wor_w = u3s_jam_fib(a, &bit_w);
|
c3_w* wor_w = u3s_jam_fib(a, &bit_w);
|
||||||
c3_w len_w = bit_w >> 5;
|
c3_w len_w = bit_w >> 5;
|
||||||
|
Loading…
Reference in New Issue
Block a user