Finally they have added test that actually tests web frameworks - "Fortunes test" but no Tapestry yet. Does anyone is going to contribute the fortune test?
>> Performance can be black magic. >> >> On the one hand, I've heard some specific things about Node.js performance >> that are very positive. Certainly, when developing for Node, the virtually >> instance server startup is wonderful. Java has beaten us down into thinking >> that code needs lots of time to start up. It reminds me of a time a few year back when Ruby on Rails was a way to go - no threads and scale out using multiple instances. Denis May 7, 2013 v 3:48 AM, Rural Hunter <ruralhun...@gmail.com>: > Here is a latest framework benchmark: > http://www.techempower.com/benchmarks/#section=data-r4 > How do you guys think about it? > > 于 2013/1/25 9:39, Howard Lewis Ship 写道: >> Performance can be black magic. >> >> On the one hand, I've heard some specific things about Node.js performance >> that are very positive. Certainly, when developing for Node, the virtually >> instance server startup is wonderful. Java has beaten us down into thinking >> that code needs lots of time to start up. >> >> However, Node.js is constantly switching contexts in significant ways. All >> those callbacks executing in, effectively, a chaotic order means that >> memory must be swept into and out of core quite constantly. In a Java-style >> synchronous server, the operating system has more clues about what memory >> should stay resident based on which threads have been recently active. >> Operating systems are very good at managing virtual memory, when you let >> them! >> >> It's probably impossible to compare things in an apples-to-apples way, >> however. I appreciate that single-thread simplicity of Node ... no locks, >> no deadlocks, no concerns about memory visibility between threads, no >> synchronize, no ConcurrentReadWriteLock, huzzah! >> >> The flip side is that in node you have to always be on your toes w.r.t. to >> writing everything in the callback style. That's not everyone's cup of tea >> ... and in some cases, can be truly complicated to manage, especially >> figuring out how to respond to errors when you are in the middle of an >> indeterminate number of partially executed work flows. >> >> >> On Thu, Jan 24, 2013 at 5:05 PM, Lenny Primak <lpri...@hope.nyc.ny.us>wrote: >> >>> I was also surprised by the results when I saw them. >>> This was a C++ project, not java, but the performance characteristics >>> wouldn't be any different. >>> This was also proprietary project for one of my old companies so I can't >>> divulge anything else about it. >>> What I can tell you, it comes down to a very simple fact: >>> In all async servers, any single I/O operation comes down to 2 calls: >>> poll() (or whatever equivalent you want to use) and read/write() >>> There is also setup costs for poll() or its equivalents that are not >>> present in a synchronous server. >>> With synchronous server, there is no poll(), just the read and write, thus >>> the overhead of the poll() and its setup is eliminated. >>> Now it all comes down to the OS threading and I/O performance, and the >>> real surprise was that the multiple threads, >>> even 100s of thousands of them, all doing IO were not bogging down the >>> system at all. >>> >>> I know that there is all hype right now around async servers, but in real >>> world, async is just slow. >>> >>> I also believe that lightweight threads (green_threads, I believe) were >>> eliminated from the JVM long time ago. >>> >>> On Jan 24, 2013, at 7:51 PM, Robert Zeigler wrote: >>> >>>> I find this very difficult to swallow, at least for java apps, unless, >>> maybe, you're using a java implementation that uses native threads instead >>> of lightweight java threads, then I might believe it. I would also believe >>> it if the async server is poorly written. And I can believe that many an >>> async server is poorly written. It also depends a LOT on whether your >>> connections are short or long lived. For something like a web server where >>> you typically have very short-lived client connections, I can also believe >>> this. I'm rather skeptical of general claims that an async server is >>> slower, and would love to see some of the "space research project" worth of >>> data backing the claims. >>>> Robert >>>> >>>> On Jan 24, 2013, at 1/249:29 AM , Lenny Primak <lpri...@hope.nyc.ny.us> >>> wrote: >>>>> I've done extensive ( no, not extensive, really, really, extensive, >>> worthy of a space research project extensive ) testing of async IO >>> performance vs. threaded server performance. >>>>> The conclusion is that unless you have over 10,000 active, users, >>> async IO is about 1/2 the performance of the usual thread-per-connection >>> performance. >>>>> By active users I mean connections that are actually putting out IO all >>> the time, as opposed to just idle sitting connections. >>>>> If you really, really, do have that many uses ( amazon.com type shop ) >>> your bottleneck won't be at the web server level anyway, so the right thing >>> to do is to load balance and scale out. >>>>> Async IO won't solve any of these problems and will just introduce bugs >>> and complexity and actually degrade performance by significant margin. >>>>> On Jan 24, 2013, at 7:06 AM, "Thiago H de Paula Figueiredo" < >>> thiag...@gmail.com> wrote: >>>>>> On Thu, 24 Jan 2013 09:26:45 -0200, Muhammad Gelbana < >>> m.gelb...@gmail.com> wrote: >>>>>>> Can someone clarify why would play! be better than tapestry in this >>> test? >>>>>> I guess only someone with play! internal architecture can tell you >>> this for sure. I also think that is probable that its usage of Netty ( >>> https://netty.io/), which uses NIO and asynchronous IO, instead of >>> servlet containers (usually synchronous) is an important factor. I'm >>> playing with the idea of running Tapestry over Vert.X (http://vertx.io/), >>> but no code written yet. >>>>>> -- >>>>>> Thiago H. de Paula Figueiredo >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org >>>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>>>> For additional commands, e-mail: users-h...@tapestry.apache.org >>>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>>> For additional commands, e-mail: users-h...@tapestry.apache.org >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>> For additional commands, e-mail: users-h...@tapestry.apache.org >>> >>> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org