01:05
japhb joined
02:48
ilbot3 joined
03:14
colomon joined
06:24
ggoebel16 joined
07:28
ggoebel16 joined
07:55
FROGGS joined
07:57
domidumont joined
08:03
domidumont joined
08:24
zakharyas joined
|
|||
nwc10 | Odd. hhvm 3.12 was released 11 days ago: github.com/facebook/hhvm/releases but there's nothing on the blog (hhvm.com/blog/), and nothing I spot in the repository that updates changelogs or NEWS or similar from one (or two) releases previously | 08:50 | |
and if Pyston can stick to its "every 4 months" plan then 0.5 should arrive in early March: blog.pyston.org/2015/11/03/102/ | 08:52 | ||
09:02
vendethiel joined
09:23
brrt joined
09:29
vendethiel joined
|
|||
brrt | good * #moarvm | 09:33 | |
FROGGS | o/ | ||
nwc10 | good UGT, #moarvm | ||
brrt | it is apparantly release time of the month | 09:34 | |
09:57
vendethiel joined
|
|||
timotimo | yeah, even for perl6 | 10:37 | |
10:41
vendethiel joined
11:14
FROGGS joined
11:37
brrt joined
11:41
flussence joined
11:42
ilmari joined,
hoelzro joined
12:09
vendethiel joined
12:31
vendethiel joined
12:52
domidumont joined
12:59
vendethiel joined
14:19
dalek joined
14:38
vendethiel joined
14:39
d4l3k_ joined
14:43
masak joined
14:49
synopsebot6 joined
15:21
cognominal joined
15:37
vendethiel joined
16:06
vendethiel joined
16:30
vendethiel joined
16:56
vendethiel joined
17:26
vendethiel joined
17:53
vendethiel joined
|
|||
timotimo | watched that "data-oriented design" talk and nothing from moarvm comes to mind where an approach like that could help our performance :| | 18:13 | |
18:24
vendethiel joined
19:04
domidumont joined
20:09
brrt joined
|
|||
brrt | timotimo: what 'data driven design' talk | 20:09 | |
not a talk about the radical idea that you should measure before you can design, right | 20:10 | ||
i mean, that's not what any other form of engineering has been doing since forever | |||
stronger even; that when you design without measurement, its really just sketching, not design | |||
anyway, VMs kind of tend to be designed with a lot of exactly that kind measurement being distilled into the general style of doing things | 20:11 | ||
20:19
xiaomiao joined
20:20
leedo joined,
diakopter joined,
konobi joined,
jnthn joined
|
|||
timotimo | no, not data-driven | 20:24 | |
20:25
avar joined,
avarab joined
|
|||
timotimo | brrt: it's about "data is more important than code" | 20:25 | |
20:25
avar joined
|
|||
brrt | i'm curious | 20:26 | |
20:30
_longines joined
|
|||
timotimo | it was a keynote at the cppconf 2014 | 20:33 | |
20:49
colomon_ joined
|
|||
timotimo | brrt: would you like to help me figure out the performance of a little script? | 20:57 | |
github.com/timo/SDL2_raw-p6/blob/m...e_noise.p6 | |||
in theory i suppose i could put a check outside if the $pitch is equal to exactly the number of pixels per row times the number of bytes per pixel. which in my machines is true | 20:58 | ||
and then i can just have a $cursor that i ++ | |||
the profile says we spend 52.28% inclusive, 42.75% exclusive time in postcircumfix:<[ ]> | 21:01 | ||
brrt | i can try | ||
timotimo | (the rest is inside ASSIGN-POS - both of those things are perfectly inlined) | ||
then comes 95.37% of inclusive, 36% exclusive time inside the outer loop in render() | |||
and only 7.1% inside pick | 21:02 | ||
i get like 14 FPS with this whole setup | |||
oh, my local version has the my $then = now line and the 1 / now - then fps lines thrown out | 21:03 | ||
because that added a lot of pressure on the GC ... from DIVIDE_NUMBERS and other things | |||
brrt | i suppose that loop is as slim as it can be | 21:04 | |
timotimo | instead i have a $frame = $frame + 1 and say $frame at the end | ||
brrt | hmmm | 21:05 | |
you spend 50% of your time in [] | 21:06 | ||
does nativecast return a proxy of sorts? | |||
timotimo | no, look at the spesh, it basically turns into just a bindpos | 21:07 | |
shall i upload the spesh for you? | |||
brrt | prolly, yes :-) | ||
timotimo | brrt_whitenoise_data.tar.gz - how does that sound %) | 21:12 | |
t.h8.lv/brrt_whitenoise_data.tar.gz | |||
brrt | :-) | ||
timotimo | what i find surprising is that perf doesn't show a lot of time spent inside the bindpos function at all | 21:14 | |
21:15
Ven joined
|
|||
timotimo | ==20217== brk segment overflow in thread #1: can't grow to 0x4a56000 | 21:21 | |
==20217== brk segment overflow in thread #1: can't grow to 0x4a52000 | |||
==20217== brk segment overflow in thread #1: can't grow to 0x4a41000 | |||
running valgrind with cachegrind on that script, i get a screenful of this | 21:22 | ||
and why the fucking hell is bn_mul_2d so oft-called? | 21:30 | ||
i shall put a breakpoint. | 21:31 | ||
brrt | what is bn_mul_2d | 21:34 | |
timotimo | sorry, bp_mul_2d | ||
comes from libtom | |||
that's apparently a bit-shift to the left by a count of bits | 21:35 | ||
oh, it comes from set_int | 21:37 | ||
MVM_bigint_mp_set_uint64 calls it | |||
brrt | why bigint, where do bigints come from | ||
i'm sorry, i don't really have the brain left to help you today | 21:38 | ||
timotimo | m: say 4279312947.base(16) | ||
camelia | rakudo-moar 620f4e: OUTPUT«FF112233» | ||
timotimo | it comes from the numbers i put into that array | ||
brrt | ah man | 21:39 | |
timotimo | i think it fits into 32bit though? | ||
OH! | |||
yeah, i know what it is | |||
we're not removing the return value of nqp::bindpos from ASSIGN-POS | 21:40 | ||
and it boxes the value into an Int with p6box_i | |||
brrt | aha | ||
cool | |||
how did you figure that out | |||
timotimo | i found that out earlier | 21:44 | |
well, it's just that there's still a p6box_i in there | |||
brrt afk for today | 21:45 | ||
timotimo | oh, also, it hink the profiler doesn't instrument things that have been inlined perhaps? | 21:46 | |
yeah, the MVM_IS_32BIT_INT macro won't say "yup, it's a small int all right" because it's about signed integers here | 21:54 | ||
that also means that the code would still benefit from freeing stuff to be put into a separate thread, because of all the Int objects it's gotta free there | 21:59 | ||
22:01
Ven joined
|
|||
timotimo | aha! | 22:02 | |
m: say "now i gots me { 220 / 10.8 } fps" | 22:03 | ||
camelia | rakudo-moar 620f4e: OUTPUT«now i gots me 20.370370 fps» | ||
timotimo | m: say "now i gots me { 511 / 13.28 } fps" | ||
camelia | rakudo-moar 620f4e: OUTPUT«now i gots me 38.478916 fps» | ||
timotimo | m: say "{ 4 * 1024 * 1024 / 20 } P6bigint fit into a nursery" | 22:12 | |
camelia | rakudo-moar 620f4e: OUTPUT«209715.2 P6bigint fit into a nursery» | ||
timotimo | m: say "{ 4 * 1024 * 1024 / (20 * 320 * 240) } frames worth of p6bigint fit into a nursery" | 22:13 | |
camelia | rakudo-moar 620f4e: OUTPUT«2.730667 frames worth of p6bigint fit into a nursery» | ||
22:58
vendethiel joined
23:39
vendethiel joined
|