Ticket #2245
enhancement
new
Deferred implementation in C
| Reported by: |
therve |
Owned by: |
|
|
Priority:
|
normal
|
Milestone:
|
|
|
Component:
|
core
|
Keywords:
|
|
|
Cc:
|
therve, spiv, peaker, exarkun, ed@…, thijs, wsanchez, vultaire, mkeller@…
|
Branch:
|
branches/cdefer-2245-4
(diff,
github,
buildbot,
log)
|
|
Author:
|
therve
|
Launchpad Bug:
|
|
For optimization (and fun) purpose I created a implementation of Deferred in C, inspired by the pyrex version lying around svn sandbox. I intentionally left out the debug and timeout stuff.
It seems to pass most Twisted suite, except those involving setTimeout and debug.
I'm putting this here for anyone interested. On some basic tests, my apps are 5 to 20% faster.
Attachments
-
cdefer.c
(23.5 KB) - added by therve
7 years ago.
-
deferbenchmark.patch
(2.1 KB) - added by Peaker
6 years ago.
-
cdefer.2.patch
(32.6 KB) - added by Peaker
6 years ago.
-
After my review -- fixing a lot of error-handling/refcounting bugs
-
cdefer.benchmark_results
(2.5 KB) - added by Peaker
6 years ago.
-
The benchmark results on my machine
-
cdefer.3.patch
(34.4 KB) - added by Peaker
6 years ago.
-
Fixed a reentrancy bug (runCallbacks->callback->addCallbacks->runCallbacks). Added relevant test cases. Fixed use of defer.setTimeout in twisted.mail
-
cdefer.patch
(34.5 KB) - added by Peaker
6 years ago.
-
Fixed a reentrancy bug (runCallbacks->callback->addCallbacks->runCallbacks). Added relevant test cases. Fixed use of defer.setTimeout in twisted.mail
-
cdefer-2245.patch
(504 bytes) - added by Peaker
6 years ago.
-
Use int instead of Py_ssize_t as a PyList index.
-
cdefer.4.patch
(1.9 KB) - added by Peaker
6 years ago.
-
Fixes setDebugging/setTimeout tests
-
cdefer.5.patch
(1.8 KB) - added by Peaker
6 years ago.
-
Use test.skip = '...' instead of in-test logic.
-
cdefer.6.patch
(9.7 KB) - added by Peaker
6 years ago.
-
Add real debugging support, the previous approach was completely broken
-
cdefer.7.patch
(9.7 KB) - added by Peaker
6 years ago.
-
Fix a bug in the way fail objects were passed to Failure in errback()
-
properties.py
(1.7 KB) - added by Peaker
6 years ago.
-
test_properties.py
(2.0 KB) - added by Peaker
6 years ago.
-
def.py
(382 bytes) - added by redbaron
5 years ago.
-
Minimal test-case shows huge memory leaks
-
cdef-memleak.py
(357 bytes) - added by redbaron
5 years ago.
-
Even simplier test which shows memory leaks
Change History