01:18
<
xorAxAx >
mjacob, so, would you need a guest room for the sprint?
01:18
<
xorAxAx >
mattip, or you?
01:18
<
xorAxAx >
i have a guest room <50 min. drive from uni dus, in "essen"
04:11
_whitelogger has joined #pypy
04:30
jcea has quit [Quit: jcea]
05:08
PileOfDirt has quit [Remote host closed the connection]
05:11
speeder39_ has joined #pypy
05:17
_whitelogger has joined #pypy
06:46
dddddd has quit [Remote host closed the connection]
06:51
xcm is now known as Guest22876
06:51
Guest22876 has quit [Killed (card.freenode.net (Nickname regained by services))]
06:52
xcm has joined #pypy
06:56
Ai9zO5AP has quit [Quit: WeeChat 2.3]
07:02
_whitelogger has joined #pypy
07:21
speeder39_ has quit [Quit: Connection closed for inactivity]
09:48
<
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)
09:56
_whitelogger has joined #pypy
10:27
Zaab1t has joined #pypy
10:45
<
mjacob >
arigato: which model do you have? a colleague has a quite similar problem.
10:48
<
Hodgestar >
arigato: Maybe "Always on" means "Always on at full speed"? Bizarre.
11:17
<
arigato >
Hodgestar: no, "fan always on" is less loud
11:46
<
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
13:22
dddddd has joined #pypy
14:27
themsay has joined #pypy
15:04
lritter has joined #pypy
15:47
nopf has quit [Quit: leaving]
15:51
nopf has joined #pypy
15:57
antocuni has joined #pypy
16:02
jcea has joined #pypy
16:27
antocuni has quit [Ping timeout: 268 seconds]
18:23
themsay has quit [Ping timeout: 246 seconds]
18:26
dddddd has quit [Ping timeout: 245 seconds]
18:26
jcea has quit [Remote host closed the connection]
18:33
dddddd has joined #pypy
18:35
<
mattip >
fwiw, here is a benchmark run comparison of default (python2) to unicode-utf8 (python2)
18:36
<
mattip >
I ran each binary three times, so there is pypy2_1 (baseline), pypy2_2, pypy2_3, pypy2_utf81, pypy2_utf82, pypy2_utf83
18:36
<
mattip >
the repititions were to see how stable the python performance benchmarks are
18:38
<
mattip >
utf8 wins big on django_template, go, and wins small on regex_compile
18:38
akinode has joined #pypy
18:39
<
mattip >
utf8 loses on json_loads
18:40
<
mattip >
some of the sympy benchmarks are not stable, the rest are all within 3% of the same runs
18:52
jcea has joined #pypy
19:07
adamholmberg has joined #pypy
19:07
adamholmberg has quit [Remote host closed the connection]
19:10
jcea has quit [Remote host closed the connection]
19:10
jacob22__ has quit [Ping timeout: 246 seconds]
19:10
jcea has joined #pypy
19:11
Zaab1t has quit [Quit: bye bye friends]
19:36
themsay has joined #pypy
19:37
jacob22__ has joined #pypy
20:02
<
cfbolz >
mattip: I am working on a massively faster json decoder, that will be helped even more on utf-8
20:23
<
mattip >
cfbolz: nice. It seems like utf8 will be a win everywhere then
20:24
<
cfbolz >
mattip: probably some people will observe slowdowns
20:24
<
mattip >
well, still remains to be seen what happens on pypy3 and unicode-utf8-py3
20:24
<
mattip >
cfbolz: hehe
20:24
<
cfbolz >
but pypy3 needs some more care around unicode anyway
20:24
<
cfbolz >
I have some plans, actually
20:25
<
mattip >
note that while the branches work, there is still more to be done to avoid round-tripping encode/decode
20:26
<
mattip >
... and there is the strange slowdown with own testing, it seems to come from too many misses in the method cache
20:32
<
cfbolz >
mattip: maybe the two are related
20:32
<
cfbolz >
mattip: the method cache uses string identity in the fast path
20:32
<
cfbolz >
so if some name is encoded/decoded in the meantime, there is going to be a miss
20:33
<
mattip >
hmm. I think the string identity is for the code, not the name
20:33
<
cfbolz >
no, it's the name too
20:34
<
cfbolz >
at least on default, it looks like this:
20:34
<
mattip >
_pure_lookup_where_with_method_cache
20:34
<
cfbolz >
note line 3
20:36
<
cfbolz >
mattip: so potentially fixing some of the encode/decode problems might improve the method cache miss rates
20:37
<
mattip >
I am pretty sure the names are ok. The places I still see are ones that call out to rffi functions with wchar
20:37
<
mattip >
but who knows
20:38
<
cfbolz >
ok. but the method cache stuff needs to be fixed, because it really makes the non-jitted code much faster
20:41
<
cfbolz >
mattip: anyway, that sounded negative. congratulations on getting to the current point :-)
20:42
<
mattip >
any hints how to debug it? I have two python cprofile files on dropbox if anyone wants to take a look
20:43
<
cfbolz >
mattip: that's completely pre-translation, right?
20:43
<
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
20:43
<
mattip >
cfbolz: yes, py3.5 vs unicode-utf8-py3, both running the following
20:44
<
mattip >
python2 pytest.py --profile pypy/module/_cffi_backend/test/test_recompiler.py -k test_math_sin
20:44
<
mattip >
unicode-utf8-py3 is about 25% slower
20:45
<
mattip >
(that is after pip install pytest-profiling)
20:48
<
cfbolz >
mattip: I would just add prints into _pure_lookup_where_with_method_cache
20:48
<
cfbolz >
on hit and on miss
20:49
<
mattip >
130,000 or so calls
20:49
<
cfbolz >
ok, but then you diff the files
20:49
<
cfbolz >
I can try it
20:50
<
mattip >
ok. I tried that, the key has no name. Maybe the lack of a name is the problem?
20:50
<
cfbolz >
hm, what do you mean by "the key has no name"?
20:51
<
mattip >
hang on, recreating
20:54
<
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
20:54
<
mattip >
it is hit 200,000 times, and has a signature of self, name, version_tag
20:55
<
mattip >
name is actually the code snippet being compiled
20:55
<
mattip >
so it makes it hard to compare between versions
20:56
<
cfbolz >
no, "name" is the name of the attribute that is being looked up
20:57
<
cfbolz >
but I agree, something very strange is going on
20:57
<
mattip >
hmm. I can try to print it again
20:58
<
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
20:59
<
cfbolz >
that means _pure_lookup_where_with_method_cache is called less often on utf-8, which is very strange
21:00
<
mattip >
I chose that test at random because it takes a long time, maybe try a different smaller test?
21:00
<
cfbolz >
no, it's interesting to look at this
21:01
<
cfbolz >
I can try to dig a bit more
21:02
<
mattip >
cool. You now know all I remember from my attempts to understand :)
21:03
<
cfbolz >
mattip: this part of the objspace is pretty old and strange
21:04
<
mattip >
well, I am not really working on this continously as well, context switches are costly
21:33
demonimin has quit [Quit: bye]
21:42
dmalcolm has quit [Ping timeout: 240 seconds]
21:42
dmalcolm has joined #pypy
22:38
k1nd0f has joined #pypy
23:03
dmalcolm has quit [Ping timeout: 245 seconds]
23:03
k1nd0f_ has joined #pypy
23:04
k1nd0f__ has joined #pypy
23:04
k1nd0f__ has quit [Remote host closed the connection]
23:04
dmalcolm has joined #pypy
23:07
xcm has quit [Remote host closed the connection]
23:08
k1nd0f_ has quit [Ping timeout: 240 seconds]
23:08
xcm has joined #pypy
23:08
k1nd0f has quit [Ping timeout: 250 seconds]
23:58
k1nd0f has joined #pypy
23:58
k1nd0f_ has joined #pypy
23:59
k1nd0f_ has quit [Client Quit]