01:43
eternaleye joined
03:31
woosley joined
03:55
woosley joined
04:13
colomon joined
|
|||
lue is almost surprised the macro-happy-ish source didn't factor out sigs beginning with (MVMThreadContext *tc, to SIG_TC( :) | 05:46 | ||
07:11
FROGGS joined
|
|||
FROGGS | lue: jnthn is not fond of overmacroing it :o) | 07:21 | |
10:33
jnthn joined
|
|||
FROGGS | hmmm, nqp-m -e '1' takes 0m0.175s while nqp-p slurps in a 35kb text file within 0m0.112s | 10:56 | |
nqp-m needs 0m0.209s to slurp it | |||
tadzik | man the profilers! :P | 11:03 | |
FROGGS | already doing :o) | 11:07 | |
but lunch first | |||
& | |||
12:14
tgt joined
12:34
woolfy left
|
|||
FROGGS | jnthn: here is the heap profile for `nqp-m -e 1` btw froggs.de/perl6/nqpm-e1.ps | 12:45 | |
though, might not that readable on screen for you :/ | 12:46 | ||
timotimo | i can't get that to render in okular nor evince | 12:52 | |
ah, converted it to a pdf, now it works | |||
timotimo doesn't know what to do with that info | 12:53 | ||
jnthn | hm...can I have that PDF? :) | 12:54 | |
nwc10 can confirm that it renders OK here, but no good idea what to do with that info, even if I have time, which I don't | |||
timotimo | jnthn: you don't have ps2pdf installed? ;) | ||
gimme a sec. | |||
where do i upload this to :| | |||
timotimo mails it | 12:55 | ||
jnthn | oh, nice! | 12:58 | |
FROGGS: When I see somehting like: | |||
timotimo | so, that was memory usage, not time usage, right? | 12:59 | |
jnthn | deserialize_frames | ||
0.1 (1.4%) | |||
of 0.6 (5.4%) | |||
timotimo | yeah, heap profile | ||
jnthn | What are the first and second lines about? | ||
incl/excl? | |||
timotimo | it seems to me one is the time the thing itself takes, the other the thing plus its children | ||
jnthn | But that doesn't make sense to me either... | ||
timotimo | and one compared to its parents | ||
fwiw, 10 MB is pretty decent | |||
jnthn | Yeah. | 13:00 | |
That add_page mallocs most is not so surprising. | 13:01 | ||
But we may want to tweak bin sizing or something. | 13:02 | ||
13:04
FROGGS joined
|
|||
FROGGS | jnthn: there is also other stuff that I can generate, see code.google.com/p/gperftools/wiki/G...manceTools | 13:05 | |
timotimo | ah, it's perf! | ||
perf is so excellent :) | |||
oh, wait, that's not the thing i was thinking of | 13:06 | ||
jnthn | FROGGS: Hm, what does the CPUPROFILE thing give as output? | 13:07 | |
FROGGS | jnthn: I'll look into that after $meeting | ||
13:44
tgt joined
14:12
jnap joined
15:02
tgt joined
15:15
FROGGS[mobile] joined
15:58
FROGGS joined
18:13
ssutch joined
19:20
lizmat joined
19:27
tgt joined
|
|||
FROGGS | jnthn: froggs.de/perl6/cpu_nqpm-e1.pdf | 19:42 | |
nwc10 | that was a long meeting :-) | 19:45 | |
[yes, strictly, "after" doesn't mean "immediately after"] | 19:46 | ||
FROGGS | froggs.de/perl6/cpu_nqpm_slurp35kb.pdf | 19:47 | |
nwc10: I had to find out first why it didn't work :o) | 19:48 | ||
jnthn | FROGGS: Normally 'cus nobody listens, or there's not enough coffee... | 19:49 | |
FROGGS | hmm? | 19:50 | |
jnthn | Why meetings don't work :P | ||
FROGGS | hehe | ||
well, yeah | |||
jnthn | OK, I can see things to do from this graph :) | 19:51 | |
FROGGS | it was kinda ridiculous | ||
that is a nice renderer btw | |||
jnthn | One outstanding task is to get the serialization blog dragged out of the string heap and into its own segment. | 19:52 | |
uh, blob. | |||
heh, serialization blog. That's be fascinating. "I just wrote an int32 to disk!" "I just wrote an int16 to disk!" "I just wrote a string heap index!" | 19:53 | ||
nwc10 | instead couldn't you send it to Twitter, and see if it improves the signal to noise ratio? | 19:54 | |
and find out how many followers you pick up | |||
19:59
lizmat joined
|
|||
diakopter | FROGGS: the numbers in that graph seem much too small to indicate anything | 20:18 | |
sample size, I mean | 20:19 | ||
only 15 samples? | |||
FROGGS | well, I'd need a better test case then :o) | 20:20 | |
jnthn | If the test case is "startup"... :) | 20:21 | |
The exact percentages may be a bit off (sampling profilers trade that in for low overhead), but I think the big picture is quite believable. | |||
FROGGS | gperf I used earlier lets you rerun the test and merge the results to get better percentages | 20:23 | |
jnthn | Ah, that'd do nicely too :) | ||
FROGGS | btw, the first trap I fell into was when looking at the heapmap: why does add_page take so long? | 20:28 | |
I know, it was silly of me :o) | 20:29 | ||
jnthn | It's fast, just hungry. Like a cheetah that didn't eat in a while. | 20:32 | |
FROGGS | diakopter: I was able to increase the sample size... | 20:56 | |
diakopter | ok :) | ||
url? | 20:57 | ||
FROGGS | froggs.de/perl6/cpu_nqpm-e1.pdf | ||
same link as before, I hope it does not cache it | |||
diakopter | invalid pdf | ||
(web server cached some partial write?) | 20:58 | ||
FROGGS | ohh, the upload got stuck | ||
hmmm | 21:00 | ||
diakopter: now? | |||
nwc10 | thought I had a few days ago - PyPy 2.2 recently released emphasising that it's just gained incremental GC: morepypy.blogspot.co.uk/2013/11/pyp...alism.html | 21:10 | |
diakopter | yeah, but 39 is still way too small; I posted a link to the output of somehting that instrumented and logged millions of calls | ||
nwc10 | Incremetnal GC seemed to be a big new feature of Rubinius recently | ||
jnthn | diakopter: sampling != instrumental | 21:11 | |
nwc10 | superficially this looks like "everyone needs incremental GC" | ||
diakopter | I know. | ||
jnthn: my point was that it's possible to sampl all of them. | |||
and that 39 is miniscule compared to what it could get | |||
nwc10 | but I think it actually means "you can be a sucessful project for at least 5 years before incremental GC becomes the most important thing to fix" | ||
FROGGS | diakopter: then I'd need to set the sample-per-seconds to a gazillion | ||
jnthn | diakopter: Yes, mine is that IME even a smallish number of samples (granted, normally 100s, not 10s) can be enough to give a good idea... :) | 21:12 | |
diakopter | FROGGS: definitely... try it.. set it to 10,000 | ||
at least | |||
or 1e6 | |||
FROGGS | that was the command: LD_PRELOAD="/usr/lib/libprofiler.so" CPUPROFILE_FREQUENCY=1000000 CPUPROFILE=_cpuprofile nqp-m -e 1 | ||
I can add more zeros though :o) | |||
diakopter | but anyway the total startup time is quite good; why optimize that? | 21:13 | |
(it's like 8ms on windows msvc) | |||
at least 50s goes to loading shared libraries | |||
jnthn | nwc10: Incremental is a bit of a trade-off too. In general, shorter pause times trade off against overall throughput. | ||
FROGGS | the startup time is at 0.2s while nqp-p can startup and slurp a 35kb test file within 0.125s | 21:14 | |
nwc10 | jnthn: yes, I remember you saying that, and it seems intuitive | ||
FROGGS | diakopter: nqp-m's startup time? | ||
diakopter | yes? | ||
nwc10 | I guess what's been bugging them is that they have users who want to write games or stuff with some degree of desired responsiveness | ||
but, anyway, at least 5 years until it matters :-) | 21:15 | ||
jnthn | As another data point, .Net ships with a client GC and a server GC | ||
diakopter | I vehemently disagree; there are tons of definitions of "successful project" and I dont think pypy meets very many of them | ||
FROGGS | I would say that C is successful | 21:16 | |
diakopter | who wouldn't? | ||
FROGGS | :o) | ||
diakopter | if there were only 39 samples, and it was trying to make 1e6 of them per second, then it seems it only profiled for 39 microseconds | 21:19 | |
FROGGS | which is weird that the samples only increase to 41 when I add several zeros | 21:20 | |
diakopter | well, it's reached some limit | ||
which isn't helpful for such short-lived programs | 21:21 | ||
I already reported that 90% of the startup time (in code, not loading shared libraries) was spent in deserialization | |||
(and nearly all of that in decoding and initialization strings) | 21:22 | ||
*initializing | |||
nwc10: from what the rubinius x guy said, pypy basically failed to garner hardly any users | 21:23 | ||
nwc10 | diakopter: oh interesting. Where did he say that? I'd not spotted that | ||
implied - Rubinius has won itself a userbase? | 21:24 | ||
diakopter | he didn't seem to imply that | 21:25 | |
nwc10 | oh, OK. | 21:26 | |
diakopter | ergh | ||
21:45
benabik joined
22:07
benabik joined
22:18
lizmat joined
22:41
BenGoldberg joined,
woolfy joined
|