[00:02] *** Kaiepi left [00:03] *** Kaiepi joined [00:37] *** Kaiepi left [00:37] *** Kaeipi joined [00:40] *** sena_kun joined [00:41] *** Altai-man_ left [00:59] *** Kaeipi left [01:00] *** Kaeipi joined [01:08] *** Kaeipi left [01:09] *** Kaiepi joined [01:23] *** Kaiepi left [01:23] *** Kaiepi joined [02:39] *** Altai-man_ joined [02:42] *** sena_kun left [03:51] *** MasterDuke left [04:01] *** Kaiepi left [04:02] *** Kaiepi joined [04:40] *** sena_kun joined [04:42] *** Altai-man_ left [05:43] *** Kaiepi left [05:43] *** Kaiepi joined [05:49] *** colomon left [05:59] *** colomon joined [06:39] *** Altai-man_ joined [06:41] *** sena_kun left [06:44] *** vrurg_ joined [06:48] *** vrurg left [07:48] *** MasterDuke joined [07:49] good *, #moarvm [07:56] ahoy [07:59] 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% [08:01] *** zakharyas joined [08:40] *** sena_kun joined [08:41] *** Altai-man_ left [08:54] *** zakharyas left [09:19] *** zakharyas joined [10:39] *** Altai-man_ joined [10:42] *** sena_kun left [12:40] *** sena_kun joined [12:42] *** Altai-man_ left [14:02] *** lucasb joined [14:39] *** Altai-man_ joined [14:41] *** sena_kun left [14:43] *** zakharyas left [14:45] *** zakharyas joined [16:40] *** sena_kun joined [16:42] *** Altai-man_ left [17:34] *** MasterDuke left [17:37] *** MasterDuke joined [17:59] *** tobs left [18:03] *** tobs joined [18:09] *** zakharyas left [18:39] *** Altai-man_ joined [18:42] *** sena_kun left [18:46] *** AlexDani` joined [18:48] *** AlexDaniel left [19:59] *** lucasb left [20:01] how confident is everybody that this list is correct? https://github.com/MoarVM/MoarVM/blob/master/src/profiler/instrument.c#L70-L215 [20:03] hm, i see MVM_OP_smrt_strify, but not MVM_OP_smrt_intify or MVM_OP_smrt_numify [20:09] Do MVM_OP_smrt_intify or MVM_OP_smrt_numify alloc? [20:13] after a quick glance i don't think so [20:23] *** vrurg_ is now known as vrurg [20:30] 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:31] 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:33] 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:40] *** sena_kun joined [20:42] *** Altai-man_ left [20:52] 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 [21:09] *** MasterDuke left [22:20] *** MasterDuke joined [22:21] timotimo: what about https://github.com/MoarVM/MoarVM/commit/9b9bd1bf45a9f6c53baaa224acb3b41bcc4b418d ? seems like coerce_II should be added [22:22] you're right [22:26] what about https://github.com/MoarVM/MoarVM/commit/231cd1a18b46adbaf42440241134c0368b340edd ? [22:29] and https://github.com/MoarVM/MoarVM/commit/311e2683a384afb0674a994ec201b7005b0631d8 [22:31] and https://github.com/MoarVM/MoarVM/commit/954bdf88bc5d6909c8e37b9133355696751f0b67 [22:36] 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 [22:38] seems like there might be a bunch more. https://github.com/MoarVM/MoarVM/commit/954bdf88bc5d6909c8e37b9133355696751f0b67 and https://github.com/MoarVM/MoarVM/commit/4b87b0288fa27f7eea5c379616bc73bc946f3a2d and https://github.com/MoarVM/MoarVM/commit/a5f5ca92ea770d957db38023667c572002e91e4c ? [22:38] serializetobuf looks like a good candidate, too [22:38] *** sena_kun left [22:38] https://github.com/MoarVM/MoarVM/commit/314c523fe5e7ded9dc0158faa38cc707d4c2068b [22:40] 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:41] decodertakecharseof wants to be in the profiler's list of ops, too. also decodertakechars if it isn't already [22:42] buffertocu looks like it does some unusual stuff. does it need any special handling like MVM_OP_param_op_o? [22:44] MVM_string_encode_to_buf_config simply returns the buf you pass in, so doesn't need instrumented [22:45] what do you mean unusual? [22:47] https://github.com/MoarVM/MoarVM/commit/311e2683a384afb0674a994ec201b7005b0631d8#diff-bb3587478c6b68f62c75192b00b05f0fR4962-R4965 [22:47] we may want to look how MVM_string_find_encoding causes allocation [22:48] my browser doesn't jump to a place in the code from that link [22:48] ah there it is [22:49] that's mostly the same as invokish things [22:49] i think [23:04] 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:07] 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 [23:07] Missing required term after infix at line 2, near " :\n" [23:07] ;_; [23:07] this is telling me nothing [23:08] found it [23:08] i started writing a class and didn't finish it [23:08] it was only "class Blah {", "has %!", "}" [23:12] nice. i gotta go to bed, will try and play around with these some more tomorrow [23:17] :+1: