Welcome to the main channel on the development of MoarVM, a virtual machine for NQP and Rakudo (moarvm.org). This channel is being logged for historical purposes.
Set by lizmat on 24 May 2021.
08:05 ingy left 08:07 ingy joined 09:12 sena_kun joined 09:18 sena_kun left
lizmat Is there a way to find out whether a global GC cycle has been done, or possibly: find out how many have been done? 10:48
reason I'm asking:
in ParaSeq (raku.land/zef:lizmat/ParaSeq) I'm trying to batch an optimum number of values to get the lowest wallclock usage 10:49
it takes the wallclock of previous batches, and then computes the "right" number of values to match a certain interval (.5 millisecs at the moment) 10:50
however, a global GC can easily take multiple milliseconds (judging from the stats that ParaSeq keeps) 10:51
which has a detrimental effect, because it will make it look like the batch of size X got too many values to process, so it will reduce the size of future batches 10:52
which increases wallclock when it shouldn't
so I'd like to adjust the wallclock seen for a batch if it can be determined it had a global GC in it 10:53
ideally of course, I'd like to see how much CPU a batch has used, but I'm lead to understand that's impossible to find out (generally) 10:54
FWIW, I hope to make ParaSeq versatile enough so that it can be made to power >>.foo 10:55
lizmat hopes she's not rubberducking herself
11:36 leont left 11:44 leont joined 12:15 leont left 12:17 leont joined
Woodi lizmat: disabling gc when needed ? looks like low level features are needed so maybe some paart of it need to be implemented in moar ? 12:57
lizmat no, I don't want to disable GC 12:58
I just want to know *when* it did a full GC
Woodi "to see how much CPU a batch has used": do moar have instructions count like real cpus ? :)
lizmat so I can account for it when calculating optimum batch sizes
Woodi I mean: pause gc and do work in beetwin 13:00
lizmat the work it is doing is causing the GC :-) so that isn't a solution :-) 13:01
Woodi hmm, ^Inf :)
lizmat I have a test case of a 840MB text file, and looking for a string in it 13:02
and the GC is causing the batch size to decrease significantly 13:03
Woodi I think in gc-based vm's gc's are meta - they should be invisible. so low level coding and co-operating with gc is simplest choice. or having predictible gc 13:04
lizmat I'm willing to cooperate with GC: I just want to know when it ran 13:08
13:40 nine left, nine joined
Woodi grep shows few things on gc_start :) but src/profiler/log.c can have some examples ;) 13:57
japhb lizmat: FWIW, I've wanted this for quite a while, because it's damn near impossible to tune for stable animation frame rates if you can't tell what caused a frame time jump 14:45
I wonder if "GC generation number" could be an exposed thing 14:46
Also, it's not clear that GC affects threads equally, so not knowing which threads did more work may be an issue too 14:47
Woodi but leaking implementation details into upper level languages can end badly. vm's are nice and simple when they are black boxes 15:12
...clien-server approach ? or syscals :) 15:18
lizmat japhb 15:48
japhb: if you run a profile, it knows how many GC runs there have been
so the info is in there somewhere
also: I think MoarVM's GC is currently "stop the world", so it would affect all threads equally I'd say 15:49
16:59 japhb left, japhb joined 18:12 sena_kun joined
japhb lizmat: GCs often have a stop the world phase and one or more concurrent phases. I don't remember how this maps out to MoarVM's GC (it's been too dang long since I looked at it) 18:29
lizmat fwiw, I would be happy if we could find out the *number* of GC runs 18:31
in a syscall
[Coke] github.com/MoarVM/MoarVM/blob/main...=1#L52-L57 - I feel we can use stronger language here. 20:04
Geth MoarVM/coke/readme: b5d6caf897 | (Will Coleda)++ | README.markdown
Remove notes about development, other compilers
20:58
MoarVM: coke++ created pull request #1815:
Remove notes about development, other compilers
20:59
21:54 lizmat_ joined 21:58 lizmat left 22:00 lizmat_ left 22:01 lizmat joined 23:03 sena_kun left