github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
nwc10 good *, #moarvm 07:49
MasterDuke ahoy 07:56
what GC_DEBUG_* flags should i set to get more info about what the GC is doing? e.g., to try and figure out why `my int @a = ^10_000_000; my int @result; for ^1 { @result = @a>>.abs; Nil }` spends 57% of it's time doing GC, but `my int @a = ^1_000_000; my int @result; for ^10 { @result = @a>>.abs; Nil }` only spends 23% 07:59
MasterDuke how confident is everybody that this list is correct? github.com/MoarVM/MoarVM/blob/mast...c#L70-L215 20:01
hm, i see MVM_OP_smrt_strify, but not MVM_OP_smrt_intify or MVM_OP_smrt_numify 20:03
nine Do MVM_OP_smrt_intify or MVM_OP_smrt_numify alloc? 20:09
MasterDuke after a quick glance i don't think so 20:13
MasterDuke nine: i assume by alloc you don't mean just a malloc+free in some called function, but some malloced memory that's returned or attached to something? 20:30
nine MasterDuke: whatever allocations the profiler is interested in. I guess it wants memory that sticks around. It's pretty clear that stringify will allocate something. Don't know if intify does? 20:31
MasterDuke i think the only way intify would is in the MVM_coerce_s_i call it might do. but that's just a MVM_string_ascii_encode+free 20:33
timotimo prof_alloc concerns itself only with MVMObjects that end up in .o or .s registers that were hopefully actually created by the operation that the prof_alloc follows after 20:52
MasterDuke timotimo: what about github.com/MoarVM/MoarVM/commit/9b...1bcc4b418d ? seems like coerce_II should be added 22:21
timotimo you're right 22:22
MasterDuke what about github.com/MoarVM/MoarVM/commit/23...368b340edd ? 22:26
and github.com/MoarVM/MoarVM/commit/31...005b0631d8 22:29
and github.com/MoarVM/MoarVM/commit/95...96751f0b67 22:31
timotimo hllbool and hllboolfor don't allocate, it just takes values that existed already when the hll was set up 22:36
but buffertocu wants put in
MasterDuke seems like there might be a bunch more. github.com/MoarVM/MoarVM/commit/95...96751f0b67 and github.com/MoarVM/MoarVM/commit/4b...bc946f3a2d and github.com/MoarVM/MoarVM/commit/a5...2002e91e4c ? 22:38
timotimo serializetobuf looks like a good candidate, too
MasterDuke github.com/MoarVM/MoarVM/commit/31...07d4c2068b 22:38
timotimo MVM_io_get_signals wants to become a candidate, and actually wants the strings put into it counted, too. but that's a hassle, and the signal hash is supposed to only be created a single time and reused afterwards 22:40
decodertakecharseof wants to be in the profiler's list of ops, too. also decodertakechars if it isn't already 22:41
MasterDuke buffertocu looks like it does some unusual stuff. does it need any special handling like MVM_OP_param_op_o? 22:42
timotimo MVM_string_encode_to_buf_config simply returns the buf you pass in, so doesn't need instrumented 22:44
what do you mean unusual? 22:45
MasterDuke github.com/MoarVM/MoarVM/commit/31...4962-R4965 22:47
timotimo we may want to look how MVM_string_find_encoding causes allocation
my browser doesn't jump to a place in the code from that link 22:48
ah there it is
that's mostly the same as invokish things 22:49
i think
MasterDuke huh. just tried a profile of `say "1m_line_file".IO.lines.elems"` before and after adding a bunch of those ops. after had 1000000 VMStrings allocated that weren't in the before profile 23:04
timotimo cool 23:07
'/home/timo/perl6/install/bin/nqp-m' --module-path=blib --ll-exception --target=mbc --output=blib/Perl6/Optimizer.moarvm gen/moar/Optimizer.nqp
Missing required term after infix at line 2, near " :\n"
;_;
this is telling me nothing
found it 23:08
i started writing a class and didn't finish it
it was only "class Blah {", "has %!", "}"
MasterDuke nice. i gotta go to bed, will try and play around with these some more tomorrow 23:12
timotimo :+1: 23:17