LMPX.COM |
Home | Linux | Mysql | PHP | XML | ||
|
|
|||
From: Rocco Caputo Date: Mon Apr 28 03:20:56 2008 Subject: Re: benchmarking various event loops with and without anyevent
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
| Navigate in group perl.loop at sever nntp.perl.org | |
| Previous | Next |
| © No Copyright You are free to use Anything |
Site Maintained by PHP Developer
Powered By PHP Consultants |