develooper 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


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About