Hi Glyph,
On March 22, 2016 at 11:27:10 PM, Glyph (gl...@twistedmatrix.com) wrote:
On Mar 22, 2016, at 12:33 PM, L. Daniel Burr <ldanielb...@me.com> wrote:
Hi all,
Hi Daniel,
I tried to comment on the ticket, but SpamBayes rejected it as spam.
The spam-monitoring queue is empty, which means another admin probably got to
this before I did. But when I plugged the following paragraph in, something
about it made spambayes think it was still 70% likely that it was spam. So, I
re-trained the filter repeatedly until it came out to <1%; you should have less
trouble with it in the future.
Thanks for looking into that, I appreciate it.
As a person who runs twisted apps via Pypy whenever possible, I wanted to point
out that this ticket may result in a performance regression: according to
http://pypy.org/performance.html, "Classes that inherit from both new- and
old-style classes are extremely slow; avoid at all costs."
In fact, the opposite is true! Right now, every new Twisted class must be
new-style, so if it inherits from an old-style class we end up in this
situation. Since most core Twisted superclasses are old-style, that means this
happens all the time.
Nothing about 8244 would involve making more hybrid classes. Classes decorated
as @oldStyle must be pure old style (the semantics of hybrids are much, much
closer to new-style than old-style) so they have to be what they are today.
When we flip the switch there will be no more old-style classes at all.
Is there a scenario I'm missing / not understanding about the way the ticket's
steps are outlined?
I’m thinking of a twisted.web service at the moment. Right now, most of the
classes involved (resource.Resource, http.HTTPChannel, http.Request and
server.Request, etc.) are old-style classes, and pypy does a reasonable job of
optimizing those, if not to the degree that new-style classes may be optimized.
My concern is that, should these classes be converted into hybrids via the
@oldStyle decorator, my service may experience some reduction in the number of
requests per second that it handles. Obviously I’m using pypy because it gives
my twisted.web service a substantial improvement in terms of the number of
requests per second that it can handle.
I understand that I can set TWISTED_NEWSTYLE to 0 and sidestep this potential
performance hit, but it is a detail that has to be communicated to various
devops teams, has to be kept track of across environments, should probably be
removed once a fully-converted release of Twisted arrives, and so on.
Yes, I’m being a bit of a whiner here (apologies), and clearly the feature can
be disabled, and I should definitely test the results to see if there *is* a
performance regression in my case.
Thanks,
Daniel
--
L. Daniel Burr
ldanielb...@me.com
(312) 656-8387
_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python