Re: benchmarking various event loops with and without anyevent
[email protected] (Rocco Caputo) Mon, 28 Apr 2008 05:20:56 -0400
| Newsgroups | perl.loop |
|---|---|
| Message-ID | <[email protected]> |
On Apr 28, 2008, at 03:21, Marc Lehmann wrote: > On Sat, Apr 26, 2008 at 08:13:27AM -0400, Rocco Caputo <[email protected] > > 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 [email protected], 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 - [email protected] Begin forwarded message: > From: Rocco Caputo <[email protected]> > Date: April 27, 2008 23:29:18 EDT > To: Marc Lehmann <[email protected]> > 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 <[email protected] >> > 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 - [email protected]