arigato changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://quodlibet.duckdns.org/irc/pypy/latest.log.html#irc-end ) | use cffi for calling C | mac OS and Fedora are not Windows
<xorAxAx> mjacob, so, would you need a guest room for the sprint?
<xorAxAx> mattip, or you?
<xorAxAx> i have a guest room <50 min. drive from uni dus, in "essen"
_whitelogger has joined #pypy
jcea has quit [Quit: jcea]
PileOfDirt has quit [Remote host closed the connection]
speeder39_ has joined #pypy
_whitelogger has joined #pypy
dddddd has quit [Remote host closed the connection]
xcm is now known as Guest22876
Guest22876 has quit [Killed (card.freenode.net (Nickname regained by services))]
xcm has joined #pypy
Ai9zO5AP has quit [Quit: WeeChat 2.3]
_whitelogger has joined #pypy
speeder39_ has quit [Quit: Connection closed for inactivity]
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/5913 [mattip: force build, unicode-utf8]
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/7186 [mattip: force build, unicode-utf8]
<bbot2> Success: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/7186 [mattip: force build, unicode-utf8]
<arigato> (OK I have no clue: by changing my BIOS option "Fan always on" to "Enabled", then the fan becomes much, much quiter when there is nothing running. NO CLUE)
_whitelogger has joined #pypy
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/5913 [mattip: force build, unicode-utf8]
Zaab1t has joined #pypy
<mjacob> arigato: which model do you have? a colleague has a quite similar problem.
<Hodgestar> arigato: Maybe "Always on" means "Always on at full speed"? Bizarre.
<arigato> Hodgestar: no, "fan always on" is less loud
<arigato> maybe it's something like: with "fan always on" disabled, then the fan turns completely off, Windows immediately panics ("no fan! argh!"), turns it on to maximum, and after a few minutes it tries again---I hear the noise turn off and immediately back on at full power
dddddd has joined #pypy
themsay has joined #pypy
lritter has joined #pypy
nopf has quit [Quit: leaving]
nopf has joined #pypy
antocuni has joined #pypy
jcea has joined #pypy
antocuni has quit [Ping timeout: 268 seconds]
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-32/builds/4323 [mattip: force build, unicode-utf8-py3]
themsay has quit [Ping timeout: 246 seconds]
dddddd has quit [Ping timeout: 245 seconds]
jcea has quit [Remote host closed the connection]
dddddd has joined #pypy
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/5914 [mattip: force build, unicode-utf8]
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/7187 [mattip: force build, unicode-utf8]
<mattip> fwiw, here is a benchmark run comparison of default (python2) to unicode-utf8 (python2)
<mattip> I ran each binary three times, so there is pypy2_1 (baseline), pypy2_2, pypy2_3, pypy2_utf81, pypy2_utf82, pypy2_utf83
<mattip> the repititions were to see how stable the python performance benchmarks are
<mattip> utf8 wins big on django_template, go, and wins small on regex_compile
akinode has joined #pypy
<mattip> utf8 loses on json_loads
<mattip> some of the sympy benchmarks are not stable, the rest are all within 3% of the same runs
jcea has joined #pypy
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
jcea has quit [Remote host closed the connection]
jacob22__ has quit [Ping timeout: 246 seconds]
jcea has joined #pypy
Zaab1t has quit [Quit: bye bye friends]
<bbot2> Success: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/7187 [mattip: force build, unicode-utf8]
themsay has joined #pypy
jacob22__ has joined #pypy
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/5914 [mattip: force build, unicode-utf8]
<cfbolz> mattip: I am working on a massively faster json decoder, that will be helped even more on utf-8
<mattip> cfbolz: nice. It seems like utf8 will be a win everywhere then
<cfbolz> mattip: probably some people will observe slowdowns
<mattip> well, still remains to be seen what happens on pypy3 and unicode-utf8-py3
<cfbolz> right
<mattip> cfbolz: hehe
<cfbolz> but pypy3 needs some more care around unicode anyway
<cfbolz> I have some plans, actually
<mattip> note that while the branches work, there is still more to be done to avoid round-tripping encode/decode
<cfbolz> yaeh
<mattip> ... and there is the strange slowdown with own testing, it seems to come from too many misses in the method cache
<cfbolz> hm
<cfbolz> mattip: maybe the two are related
<cfbolz> mattip: the method cache uses string identity in the fast path
<cfbolz> so if some name is encoded/decoded in the meantime, there is going to be a miss
<mattip> hmm. I think the string identity is for the code, not the name
<cfbolz> no, it's the name too
<cfbolz> at least on default, it looks like this:
<mattip> _pure_lookup_where_with_method_cache
<cfbolz> note line 3
<mattip> ok
<cfbolz> mattip: so potentially fixing some of the encode/decode problems might improve the method cache miss rates
<mattip> I am pretty sure the names are ok. The places I still see are ones that call out to rffi functions with wchar
<mattip> but who knows
<cfbolz> ok. but the method cache stuff needs to be fixed, because it really makes the non-jitted code much faster
<cfbolz> mattip: anyway, that sounded negative. congratulations on getting to the current point :-)
<mattip> any hints how to debug it? I have two python cprofile files on dropbox if anyone wants to take a look
<cfbolz> mattip: that's completely pre-translation, right?
<mattip> there must be a way to get a printout of misses/hits from the cache, I see an option but do not see how to print it
<mattip> cfbolz: yes, py3.5 vs unicode-utf8-py3, both running the following
<mattip> python2 pytest.py --profile pypy/module/_cffi_backend/test/test_recompiler.py -k test_math_sin
<mattip> unicode-utf8-py3 is about 25% slower
<mattip> (that is after pip install pytest-profiling)
<cfbolz> mattip: I would just add prints into _pure_lookup_where_with_method_cache
<cfbolz> on hit and on miss
<mattip> 130,000 or so calls
<cfbolz> ok, but then you diff the files
<cfbolz> I can try it
<mattip> ok. I tried that, the key has no name. Maybe the lack of a name is the problem?
<cfbolz> hm, what do you mean by "the key has no name"?
<mattip> hang on, recreating
<mattip> so I am talking about _pure_lookup_where_with_method_cache, which is negligible in the profile of py3.5, but 25% of unicode-utf8-py3
<cfbolz> right
<mattip> it is hit 200,000 times, and has a signature of self, name, version_tag
<mattip> name is actually the code snippet being compiled
<mattip> so it makes it hard to compare between versions
<mattip> <done>
<cfbolz> no, "name" is the name of the attribute that is being looked up
<cfbolz> but I agree, something very strange is going on
<mattip> hmm. I can try to print it again
<cfbolz> mattip: so the strange thing for me is that the py3.5 version has a lot more hits, but the number of misses is roughly the same
<cfbolz> that means _pure_lookup_where_with_method_cache is called less often on utf-8, which is very strange
<mattip> I chose that test at random because it takes a long time, maybe try a different smaller test?
<cfbolz> no, it's interesting to look at this
<cfbolz> I can try to dig a bit more
<mattip> cool. You now know all I remember from my attempts to understand :)
<cfbolz> :-)
<cfbolz> mattip: this part of the objspace is pretty old and strange
<mattip> well, I am not really working on this continously as well, context switches are costly
<cfbolz> yep
demonimin has quit [Quit: bye]
dmalcolm has quit [Ping timeout: 240 seconds]
dmalcolm has joined #pypy
k1nd0f has joined #pypy
dmalcolm has quit [Ping timeout: 245 seconds]
k1nd0f_ has joined #pypy
k1nd0f__ has joined #pypy
k1nd0f__ has quit [Remote host closed the connection]
dmalcolm has joined #pypy
xcm has quit [Remote host closed the connection]
k1nd0f_ has quit [Ping timeout: 240 seconds]
xcm has joined #pypy
k1nd0f has quit [Ping timeout: 250 seconds]
k1nd0f has joined #pypy
k1nd0f_ has joined #pypy
k1nd0f_ has quit [Client Quit]