github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
MasterDuke wow, just `perl6 -e ''` calls MVM_string_latin1_decode 41008 times, which means at least that many mallocs 16:42
MasterDuke total of 308760 bytes 16:50
MasterDuke a bunch of the strings read via MVM_serialization_read_str() (when doing `perl6 -e ''`) are repeated up to 5k times. are they de-duplicated at all when serialized? 17:09
MasterDuke zstd compress ./blib/CORE.c.setting.moarvm from 15m to 3.2m. think it would be faster to compress it with zstd and decompress when reading? 17:11
e.g., 5465 instances of '#', 2499 instances of 'Raku' 17:15
japhb MasterDuke: IIRC MoarVM files were (at least originally) intended to be mmap-friendly. I guess part of your question boils down to the extent to which that is still true and how much of the file gets mapped in anyway. 18:40
timotimo strings are deduplicated in serialization, and the string heap is also supposed to give the same string object back each time one is accessed, so it could be interesting to find out what exactly is happening there 20:57
i once put in a little bit of time trying to have strings actually use the memory inside the string heap, but it was a bit too fiddly i think? 20:58
timotimo MVM_serialization_read_str will grab the string from the string heap if it's already there, so any latin1_decode should be unique strings, though we don't dedupe strings across multiple comp units 21:01
ho-hum. i wonder how often a frame's cuuid is actually accessed 21:03
static frame's cuuid, i should say 21:04
timotimo perhaps the name is also only ever needed when a stack trace is printed 21:11
it'll be a drop in the ocean at best, of course 21:18