github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
AlexDaniel | timotimo: fwiw | 00:33 | |
valgrind.org/docs/manual/ms-manual.html | |||
02:26
dalek left
02:49
Geth left
|
|||
ugexe | how come the various uses of uv_fs_t req ( such as github.com/MoarVM/MoarVM/blob/a5dd...ops.c#L125 ) don't call seem to leak memory despite never calling uv_fs_req_cleanup(&req) ( docs.libuv.org/en/v1.x/fs.html#c.uv...eq_cleanup ) ? | 05:01 | |
s/dont call seem/dont seem/ | |||
08:21
dalek joined,
synopsebot left,
p6lert_ left,
p6lert joined,
synopsebot_ joined,
Geth joined
|
|||
timotimo | hm. so why would this thread clear uncopied from the nursery, but not have logged a gc start? | 10:32 | |
oh, does that happen when a different thread takes over work for a blocked thread? | |||
that could be it | |||
yeah | 10:37 | ||
FWIW, adding a "how often was this type copied to the gen2" stat is a rather simple addition | 10:45 | ||
now let's get that data into the output | 10:47 | ||
Geth | MoarVM: Kaiepi++ created pull request #1088: Remove unnecessary (void *) cast in MVM_free_zero |
13:07 | |
14:52
zakharyas joined
14:58
lucasb joined
|
|||
timotimo | lizmat: what kind of stats could you think of? | 15:13 | |
lizmat | number of gc's, number of full collections, # call frames, inlined call frames, deopts, global deopts, OSR's, micro seconds spend in GC | 15:15 | |
interpreted frames | |||
timotimo | oh, that's not fun | ||
lizmat | well, let's start with the fun ones then ? | 15:16 | |
timotimo | we code-gen "entry"/"exit" opcodes right in the code to get that information when the profiler is on | ||
lizmat | ok, so that would only work with profiling | ||
timotimo | those ops also have to create the whole call graph and such, which the simple stats version doesn't have to do | ||
but i'm not entirely sure if it can be done any easier | 15:17 | ||
deopts and osr's on the other hand is easier to do | |||
lizmat | perhaps --profile should be split into two functions: one for codegenninng the entry/exit opcodes, and one for generating the HTML at the end ? | ||
--profile would do both, like before | |||
timotimo | those parts are pretty far apart already | 15:18 | |
lizmat | --telemetry would just do the codegenning part ? | ||
timotimo | oh btw, how would you feel about giving the Telemetry module a sub or method to cause a heap snapshot to be taken? | ||
lizmat | would be great | 15:19 | |
timotimo | you can already implement it "easily" - unless a profiler is currently running i guess - by just turning profiling on and off again immediately | ||
lizmat | together with something like snapper, would allow you to do this without touching the program itself | ||
timotimo | yeah | ||
the regular heap snapshot profiler is "reactive", i.e. it kicks in the moment a gc happens | 15:20 | ||
if you have it in telemetry, it will have to force a GC to happen, because that's how the heap snapshot profiler actually works | |||
i'm also considering implementing an extremely light-weight heap snapshot mode which completely skips all the graph-y data and only outputs summaries | |||
lizmat | that would also be helpful, I think | 15:21 | |
timotimo | those summaries will also end up in the regular heap snapshot file format as text "comments" that the heap snapshot analyzer will parse out and present | ||
so the most typical workloads can be extremely fast | |||
15:32
TimToady left
16:23
domidumont joined
|
|||
timotimo | wow, fascinating | 16:54 | |
my code is trying to call .HOW on an object it gets - which is a SpeshLog object - and it does a null pointer access because the STable doesn't have a HOW_sc set | |||
... how do i memory ... | 17:08 | ||
MasterDuke | my grandmother's line is that as she gets older her memory gets worse, but her forgettory gets better | 17:37 | |
timotimo | in this case it was more about only accessing memory locations that are actually valid | 17:39 | |
grumble grumble | 17:40 | ||
attaching the debugger to this nqp program makes it explode in a segfaulty way | |||
MasterDuke | timotimo: have you seen www.phoronix.com/scan.php?page=new...Time-Trace ? not directly useful to us i assume, but maybe some stuff to take inspiration from | ||
timotimo | ah, interesting | 17:43 | |
18:24
domidumont left
|
|||
AlexDaniel | here's a very weird ticket: github.com/rakudo/rakudo/issues/2805 | 18:55 | |
timotimo | if spesh_nodelay makes it bork, it could surely be a spesh optimization bug | ||
MasterDuke | seems like some of the people in this channel could have a relevant comment here news.ycombinator.com/item?id=19535564 | 18:56 | |
Geth | MoarVM: 4900b7a212 | (Timo Paulssen)++ | src/6model/6model.c guard 6model_get_how against null pointers MVMSpeshLog is one example where this happens. Extremely unlikely to appear in user code, but it does in the profiler (what with being deallocated and everything) |
||
MoarVM: 95094ae2e6 | (Timo Paulssen)++ | 7 files profiler: count objects being deallocated split this statistic into "deleted while in nursery and not seen before", "deleted while in nursery, but seen in a previous GC run", and "deleted while in the gen 2". Also, the stats are per-GC-run. |
|||
MoarVM: 3a4a47284d | (Timo Paulssen)++ | src/profiler/instrument.c make this code a little prettier |
|||
MasterDuke | timotimo++ | 19:00 | |
19:17
zakharyas left
20:04
robertle left
20:48
brrt joined
|
|||
brrt | \o | 20:48 | |
MasterDuke: interesting link, thank you | 20:49 | ||
21:03
brrt` joined
21:05
brrt left
21:13
brrt` left
22:02
brrt` joined
22:18
brrt` left
23:28
lucasb left
|