Hi Avi, Thanks much for putting those benchmarks together!
Even though we know (by design as an intermediary step [1]) that Restlet internal/built-in HTTP connector (client and server) are slower in 2.0 than in 1.1, this shouldn't be the case for other connectors (Jetty, Net, Apache HTTP Client, etc.) even though Apache HTTP Client 4 which have difference performances compared to version 3 (ideally better). Which connector is running on the server-side for your tests? Otherwise, I'm working intensely right now on the new built-in HTTP connector for version 2.1 that leverages the new asynchronous design introduced in 2.0 but also fully leverages non-blocking NIO to obtain excellent latency and scalability results (from our initial tests), decoupling the number of calls from the number of threads, allowing long running calls to not block the processing thread, etc. If you have time to grab the latest 2.1 snapshot and run your benchmarks again to compare, that would be very useful! Best regards, Jerome -- Restlet ~ Founder and Technical Lead ~ http://www.restlet.org Noelios Technologies ~ http://www.noelios.com [1] http://wiki.restlet.org/developers/172-restlet/354-restlet.html -----Message d'origine----- De : Avi Flax [mailto:[email protected]] Envoyé : jeudi 20 janvier 2011 06:31 À : [email protected] Cc : Michael Rehse Objet : Possible client performance regression in 2.0 compared to 1.1 Hi all, a coworker and I have been debugging an app which is having performance issues. This is an app which depends heavily on sending HTTP requests quickly. In production it generally sends thousands of requests per hour. We have a new version of the app ready, but have seen a notable performance disparity in the new version compared to the older version. After some digging, it seems that the disparity is related to the newer version having upgraded from Restlet 1.1 to 2.0. I created some tests to try to isolated the issue. My scripts are here: https://gist.github.com/787409 The server is a fixed configuration, so we can measure various client configurations. I ran the client script 5 times for each scenario: Restlet 1.1.10, HttpClient 3.1 Restlet 2.0.4, HttpClient 4.0 Restlet 1.1.10, Net Restlet 2.0.4, Net and the results seem pretty clear: HttpClient Run 1 Run 2 Run 3 Run 4 Run 5 Restlet 1.1.10 7.067 6.584 6.465 6.329 6.326 Restlet 2.0.4 9.231 8.030 7.877 7.783 7.828 Net Run 1 Run 2 Run 3 Run 4 Run 5 Restlet 1.1.10 6.268 6.078 6.073 6.228 6.427 Restlet 2.0.4 7.636 7.530 7.832 7.583 7.575 I’ve also attached some charts which help interpret the data. So, Restlet 2.0.4’s client functionality *seems* to be slower than 1.1.10 — around 20% slower (although I’m terrible at math). I’d love some help here. Am I missing something? Is my testing methodology and/or interpretation reasonable? Any suggestions on how I can dig into the framework and try to identify the cause of the slowdown? Thanks, Avi Avi Flax » Partner » Arc90 » http://arc90.com Kindling: Innovation through Collaboration » http://kindlingapp.com ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2699209 ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2699240

