These are chat archives for dropbox/pyston

22nd
Jun 2015
Chris Toshok
@toshok
Jun 22 2015 19:40

did some work allocating larger mmap chunks in our arenas, and pre-touching the pages before returning from gc_alloc. that along with the switch to jemalloc gives us:

0:04.99elapsed

for django_template.py

Marius Wachtler
@undingen
Jun 22 2015 19:44
:-). Do you pass MAP_POPULATE on the mmap to touch it without a page fault?
Chris Toshok
@toshok
Jun 22 2015 19:45
err, I didn’t even know about MAP_POPULATE. let me see if that gains anything more :)
Travis Hance
@tjhance
Jun 22 2015 19:51
why does pre-touching help?
why is the pre-touch faster than the “non-pre” touch would be?
Chris Toshok
@toshok
Jun 22 2015 19:52
I’m actually not sure it does. one thing that was strange was that the page fault count went way down when I started mmapping larger chunks
so I’m guessing we pay a page fault per mapping that we touch, not per page?
Travis Hance
@tjhance
Jun 22 2015 19:53
well anyway, yay
Chris Toshok
@toshok
Jun 22 2015 20:01
so 43% of page faults come from + 100.00% pyston::DefinednessAnalysis::run
come from calls to memcpy_sse2_unaligned, that is
Marius Wachtler
@undingen
Jun 22 2015 20:02
does the definedness analysis allocate a lot of memory?
Chris Toshok
@toshok
Jun 22 2015 20:02
i think it’s basically the densemap that is passed in