lp:~mwhudson/pypy/imported-eval-loop-experiments
- Get this branch:
- bzr branch lp:~mwhudson/pypy/imported-eval-loop-experiments
Branch merges
Branch information
Recent revisions
- 20079. By antocuni
-
try yet another way to encode bytecodes; this time, opargs are decoded
in advance, but they are stored togheter with the opcodes in a list of
ints. This code is not very well tested nor well written, I commit it
just to do benchmarks on different machines - 20077. By antocuni
-
experimental option that precomputes opcode args and pack the bytecode
to contains only opcodes, not opargs; the intent is to make the
interpreter loop a bit smaller.The benchmarks are a bit controversial, it's not clear if you win or
loose. - 20074. By cami
-
renamed constants of timer and serlial for better readability
adaoted tests
fixed bug in interrupt: enable is not a bool its an int!
adapted tests
minor refactoring: mostly code formattinh - 20072. By arigo
-
Experimental check-in which could be reverted. This makes the method
cache global instead of per-thread.It makes a pypy-c-thread almost as fast as a pypy-c-no-thread, when
threads are not used (<2% difference). The reason is that
getexecutioncontext() needs to call RPyThreadIdent(), which appears to
be the main cause of a global slow-down of 4-5%. I don't know if there
are real-world cases where the method cache would get significantly
trashed by being shared between threads.An alternative to this check-in would be to improve
getexecutioncontext(), e.g. by replacing the dict {thread_id:
executioncontext} with a single executioncontext reference which is
carefully saved and restored when the GIL is released. For now it would
be too much cleverness for too little gain, so I'll skip.
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)
- Stacked on:
- lp:pypy