github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
jnthn | We don't know which slots are the pair for a method cache | 00:03 | |
And we can't just ignore NULL ones because when we inline, the spesh slots are populated | |||
Potentially with a method | |||
timotimo | ah, you mean when we've reconstructed the spesh graph from the candidate to build the inline | ||
jnthn | Right | ||
timotimo | yes, indeed | ||
jnthn | Again, solvable somehow | ||
But maybe more effort than it's worth | |||
timotimo | similarly we lose all comments on the spesh graphs, but i'd rather not keep them around | 00:04 | |
jnthn | Known deconted type is probably going away anyway at some point | ||
timotimo | though of course they'd only have to be stored if spesh logging is turned on | ||
jnthn | I can't remember why we still have it | ||
It's not reliable data, in general | |||
timotimo | so we guard on it all the time anyway? | 00:06 | |
jnthn | I hope so :) | ||
The problem is that if the container is shared another thread could write to it | |||
Debug name of known type would be very useful, though | 00:07 | ||
timotimo | that'd be easy to add | ||
though the facts section is already pretty big and messy | |||
jnthn | :) | 00:17 | |
'night o/ | |||
timotimo | night jnthn! | ||
00:17
MasterDuke joined,
p6bannerbot sets mode: +v MasterDuke
00:18
MasterDuke left,
MasterDuke joined,
herbert.freenode.net sets mode: +v MasterDuke,
p6bannerbot sets mode: +v MasterDuke
|
|||
timotimo | well, that was a simple patch | 00:22 | |
00:22
lizmat left
|
|||
Geth | MoarVM: a74af55855 | (Timo Paulssen)++ | src/spesh/dump.c output known type's debugname in spesh log |
00:23 | |
timotimo | i wonder what the motivation is behind using bitand_i to combine $pos >= 0 and isconcrete($reified) | 00:28 | |
0.000760% jit 2,762,500 entries | 00:55 | ||
MasterDuke | m: say 2762500*.00076 | 00:56 | |
camelia | 2099.5 | ||
MasterDuke | timotimo: github.com/rakudo/rakudo/commit/0baeec0223 | 00:59 | |
01:00
lizmat joined,
p6bannerbot sets mode: +v lizmat
|
|||
timotimo is watching moarperf slooowly using more and more RES memory | 01:06 | ||
MasterDuke | as it's doing something? or just while idle? | 01:07 | |
timotimo | no requests at least; perhaps the websocket connection is pinging or something | 01:08 | |
i see one of the processes waiting for a futex, then waking one, then calling mprotecd, then waiting with the futex again | 01:11 | ||
one process is doing nanosleep and getrusage over and over again, i'd assume that's the supervisor thread for the thread pool scheduler | 01:12 | ||
that one also calls futex with WAKE_PRIVATE | |||
i closed the browser tab that was connected, looks like it's still growing, though. | 01:14 | ||
yeah | |||
MasterDuke | think it's something that can be fixed? | 01:15 | |
timotimo | well, i sure hope so :) | 01:21 | |
it felt faster than 1 megabyte per minute | 01:22 | ||
i don't know how i can tell heaptrack to ignore the first 60 seconds or so | |||
maybe version 1.1 has something for that, i'm still on 1.0 | 01:26 | ||
MasterDuke | you can attach heaptrack to an already running process | 01:27 | |
timotimo | oh | 01:28 | |
well, that would do it | |||
this time it didn't keep growing | 01:35 | ||
MasterDuke | a watched pot never boils, a heaptracked process never grows | 01:37 | |
timotimo | it did when i had it attached that other time | 01:38 | |
it was just not possible to figure out which of the parts of the stack was the one that was growing | |||
attaching it to jjust "pidof moar" gave me a recording of 0.001s run time :\ | 01:45 | ||
eh. bedtime. | 01:46 | ||
gnite! | |||
01:50
Kaiepi joined
01:51
p6bannerbot sets mode: +v Kaiepi
02:20
MasterDuke left
03:51
ggoebel left
04:07
ggoebel joined,
p6bannerbot sets mode: +v ggoebel
05:00
ItchyPlant joined
05:01
p6bannerbot sets mode: +v ItchyPlant
06:23
ItchyPlant left
07:03
domidumont joined
07:04
p6bannerbot sets mode: +v domidumont
09:26
zakharyas joined
09:27
p6bannerbot sets mode: +v zakharyas
09:28
zakharyas left
09:29
zakharyas joined
09:30
p6bannerbot sets mode: +v zakharyas
11:28
evalable6 left,
evalable6 joined
11:29
p6bannerbot sets mode: +v evalable6
12:04
zakharyas left
12:21
brrt joined
12:22
p6bannerbot sets mode: +v brrt
|
|||
brrt | \o | 12:23 | |
.tell lizmat if apple releases a laptop with an A12/A14 chip, that's finally going to be a good reason for me to buy an apple laptop ;-) | |||
yoleaux | brrt: I'll pass your message to lizmat. | ||
brrt | A64 ISA seems like a fun challenge | 12:24 | |
nine | 10.957s! That's 200ms better than the best value I got from master so far | 12:39 | |
Followed by 10.911 :) | |||
brrt | nine++ progress | 12:42 | |
jnthn | Cool! :) | 13:20 | |
13:33
dogbert17 joined
13:34
p6bannerbot sets mode: +v dogbert17
14:00
zakharyas joined
14:01
p6bannerbot sets mode: +v zakharyas
14:37
lizmat left
14:51
domidumont left
15:57
lizmat joined,
p6bannerbot sets mode: +v lizmat
16:04
robertle left
16:14
brrt left
16:20
brrt joined
16:21
p6bannerbot sets mode: +v brrt
16:31
robertle joined,
p6bannerbot sets mode: +v robertle
16:37
zakharyas left
17:04
avar left,
avar joined,
avar left,
avar joined,
p6bannerbot sets mode: +v avar
17:05
p6bannerbot sets mode: +v avar
|
|||
timotimo | oooh fabulous | 17:31 | |
i'm still looking for a good solution for identifying specific functions from the core setting when loading a profile | 17:45 | ||
since line numbers always change, and there's multi subs and methods with multiple candidates in one file that might be different enough that we want to tell them apart | 17:46 | ||
the iterators file is especially bad at this, there's hundreds of push-all and pull-one and such in there | |||
one example for "intelligence" would be to see that a user function indirectly calls Bridge on, for instance, Int or Rat | 17:47 | ||
and that could be pointed out like "perhaps you can use Num earlier in this computation" | |||
imagine code like if $foo < 5 { ... } that would convert 5 to num over and over again without need | 17:48 | ||
brrt | how is that not the job of the optimizer :-) | ||
timotimo | hmm. | ||
i'll keep this idea on the drawing board for a bit | 17:49 | ||
i'm thinking the profiler should offer (or even default) to combine all threads from one thread pool into a single tree | |||
17:52
domidumont joined
17:53
p6bannerbot sets mode: +v domidumont
18:09
brrt left
18:38
patrickb joined
18:39
p6bannerbot sets mode: +v patrickb
18:52
patrickb left
18:54
fake_space_whale left
|
|||
japhb | brrt: Intelligence in depth. It's useful to work to have a good optimizer (and spesh and jit) *and* to detect cases where the optimizer (or spesh or jit) missed out *and* to determine cases where the user is doing something fundamentally difficult to optimize. | 19:35 | |
Sortof the same reason at the C level we have all of compiler warnings, valgrind, and *san tools. | 19:36 | ||
20:04
domidumont left
20:08
domidumont joined
20:09
p6bannerbot sets mode: +v domidumont,
domidumont left
20:28
patrickb joined,
p6bannerbot sets mode: +v patrickb
20:52
patrickb left
21:04
lizmat left
22:12
MasterDuke joined,
p6bannerbot sets mode: +v MasterDuke,
MasterDuke left,
MasterDuke joined,
herbert.freenode.net sets mode: +v MasterDuke,
p6bannerbot sets mode: +v MasterDuke
22:22
lizmat joined,
p6bannerbot sets mode: +v lizmat
|