Front page | perl.loop |
Postings from April 2008
Re: benchmarking various event loops with and without anyevent
Thread Previous
|
Thread Next
From:
Rocco Caputo
Date:
April 28, 2008 02:21
Subject:
Re: benchmarking various event loops with and without anyevent
Message ID:
E5761512-9F7F-45ED-9C45-A8D9FFFC8C9C@pobox.com
On Apr 28, 2008, at 03:21, Marc Lehmann wrote:
> On Sat, Apr 26, 2008 at 08:13:27AM -0400, Rocco Caputo <rcaputo@pobox.com
> > wrote:
>> each event watcher. Anyone who knows POE can tell you this is one of
>> the least efficient designs possible. In fact, this design is worse
>> than the average for first-time POE users.
>
> [He then called my model fundamentally broken in private mail and the
> documentation rude and unprofessional, without bringing up any
> evidence]
Dear perl-loop@perl.org, and anyone reading this in the archives.
I apologize for my part in this unfolding thread. As Marc mentions, I
have been trying to take it to private e-mail. However I feel that
Marc has misrepresented to the list what I said to him in private. At
this point, it's easier for me to repost what I actually said rather
than paraphrase it.
Again, I'm sorry you had to be involved.
--
Rocco Caputo - rcaputo@pobox.com
Begin forwarded message:
> From: Rocco Caputo <rcaputo@pobox.com>
> Date: April 27, 2008 23:29:18 EDT
> To: Marc Lehmann <schmorp@schmorp.de>
> Subject: Re: benchmarking various event loops with and without
> anyevent
>
> On Apr 27, 2008, at 01:53, Marc Lehmann wrote:
>
>> On Sun, Apr 27, 2008 at 01:15:49AM -0400, Rocco Caputo <rcaputo@pobox.com
>> > wrote:
>>> I have read your code and documentation for AnyEvent::Impl::POE.
>>> Your
>>> module's design is fundamentally broken, and your code is probably
>>> more to blame than POE.
>>
>> Oh, btw, be careful with such strong idioms such as "fundemantally
>> broken":
>> so far, there is no evidence that it is broken at all, only
>> inefficient.
>>
>> (If you think it really is fundamentally _broken_ then you better
>> back up
>> your statements).
>
> I hope to show that I intended no offense.
>
> Reasonable scalability (CPU and memory) seems to be one of
> AnyEvent's design goals. I base this impression on the fact that
> you're benchmarking your code in terms of speed and size.
> "Reasonable" is subject to interpretation, but I think we agree that
> AnyEvent::Impl::POE is neither as fast nor as small as it should be.
>
> Therefore, while AnyEvent::Impl::POE operates correctly, it does not
> fulfill some of AnyEvent's design goals.
>
> AnyEvent::Impl::POE's greatest inefficiencies stem from one
> fundamental design choice: the 1:1 relationship between watcher
> instances and POE::Session instances. In your own words: "AnyEvent
> has to create one POE::Session per event watcher, which is immensely
> slow and makes watchers very large."
>
> One point of contention may be whether this is a design or
> implementation flaw. The problem is inherent in the way one class
> (AnyEvent::Impl::POE) interacts with another (POE::Session). Class
> interaction is a software design issue. It can be modeled in
> software design languages such as UML. Re-implementing the same
> entity relationship more efficiently, or in a faster language such
> as C, would not resolve the scalability problem.
>
> Therefore, AnyEvent::Impl::POE is flawed in design rather than
> implementation.
>
> Therefore, AnyEvent::Impl::POE's design prevents it from meeting
> some of AnyEvent's design goals.
>
> Therefore, AnyEvent::Impl::POE's design is broken.
>
> Unfortunately most of AnyEvent::Impl::POE's design stems from its
> flawed interaction with POE::Session. We should not need to change
> AnyEvent::Impl::POE's public interface, but we will need to rethink
> and revise nearly all aspects of its interaction with POE.
>
> Therefore, AnyEvent::Impl::POE's design flaw is a fundamental one.
>
> Therefore, AnyEvent::Impl::POE's design is fundamentally broken.
>
>> Again, let me repeat that empty insults that obviously are founded by
>> paranoia will not have any positive effect on your standing with me
>> (I
>> mean, I won't hate you or anything, but you make yourself an idiot
>> in my
>> eyes very quickly by repeatedly not beinging up any evidence...).
>>
>> Of course, I understand that if you mistook my comments about POE
>> as rude,
>> there is a natural tendency to "insult back".
>
>
> I hope I have shown reasonable evidence that my assertion is neither
> empty nor intrinsically insulting. Without the intent to insult,
> there can be no intent to "insult back". In the end, any offense
> you have taken may be of your own manufacture. Could there be
> cultural differences to overcome?
>
> In this light, your assertion of my paranoia is unfounded, unjust
> and offensive. Your view that I'm acting like an idiot is no
> better. You are of course entitled to your opinions, but those two
> are not appropriate for polite conversation.
>
> ...
>
> I'm sorry that I haven't responded promptly to your e-mail. I get
> the impression that you expect the worst from me, so I feel the need
> to choose my words in a slow and painful (and often futile) effort
> to minimize being misunderstood. As a result, I cannot write to you
> as often as I would like. Nor have I had the opportunity to work
> with you on the module in question (something I would much rather be
> doing).
>
> I hope we can reach a mutual understanding, if only so that we may
> correspond and collaborate more effectively.
>
> Until next time,
>
> --
> Rocco Caputo - rcaputo@pobox.com
Thread Previous
|
Thread Next