3 ms·
Why you say is not amazing? Honestly curious here :)
by aaossa 10y ago
Why you say is not amazing? Honestly curious here :)
- imaginenore 10y agoBecause it's trivial. I would be interested in anything doing 10,000+ req/sec on a cheap VPS. 320 is nothing. People achieve 2 million requests/second with C++ on EC2: https://medium.com/swlh/starting-a-tech-startup-with-c-6b5d5856e6de#.38xs3etwg https://medium.com/swlh/starting-a-tech-startup-with-c-6b5d5...
- aaossa 10y agoOh I see now... This speaks by it self: C++/Proxygen =1,990,130 requests per second Python/Tornado = 41,329 requests per second Thanks for sharing btw
- Cyph0n 10y agoAbsolutely excellent article. I always keep C++ at the back of my mind in case I need it some day, so I think the list of libraries they used will be useful for me in the future. Thanks.
- gst 10y agoIf you want to write fast C++ Web services I recommend a look at Seastar: http://www.seastar-project.org/ http://www.seastar-project.org/
- jorge_leria 10y agoThe article is not about serving, but about consuming. Not the same beast.
- e12e 10y agoInteresting article. Not sure that the conclusion is all that solid though: "I quantified that 1 C++ server is roughly equivalent to 40 load-balanced python servers for raw computational power based on our HTTP benchmarking. Thus using C++ can really squeeze all the computational juice out of the underlying hardware to save 1/40 off server costs." Well, for this particular start-up, I think c++ was an excellent choice (especially as they already knew c++!) -- but what if you could still run the service on a single service with python? You would still need 2-3 servers with the c++ version (failover, test etc). Or it might turn out that for production load, you'd need 10 python server-instances. Sure, one server could handle this with c++ -- but you're not actually saving 39/40, you're only saving 9/10, because you didn't need "the full 40". Not to mention, that it seems unlikely that the http request stuff is the limiting factor in a distributed OLAP system. So you might do 100 "OLAPS/s", and have them easily served by a 40Kreq/s python service. "I guess we could have written it in Python to start off with but, economically, it would be a wastage of labor cost and time because, at some stage, we would have to scrap it for a C++ version to get the performance we need. The Python code will have no economic value once scrapped." As mentioned, I think c++ was an excellent choice, but the above assumes they'd have to rewrite the entire system in c++, and scrap all the python. Granted, if you don't know python, but do know c++ very well -- it's doubtful that it would be faster to prototype in python than to just use c++. But if (wild guesstimate) you could get 90% of the features, at 10% the loc/dependencies in python -- who's to say that wouldn't make sense? Maybe parts could be done in c/c++, or the project could move to pypy for enough of a speedup that no complete rewrite would be needed... etc. Overall though, I really think this is a great illustration that high-performance compiled languages offer great performance, and can be rather pleasant to work with.
- merdreubu 10y agoBecause you can get 540 req/s on Raspberry Pi 2 with Elixir/Phoenix. http://blog.onfido.com/using-cpus-elixir-on-raspberry-pi2/ http://blog.onfido.com/using-cpus-elixir-on-raspberry-pi2/
- coldtea 10y agoBecause it's like Dr Evil asking the UN leaders for "ONE MILLION DOLLARS" to not destroy the world... https://www.youtube.com/watch?v=cKKHSAE1gIs https://www.youtube.com/watch?v=cKKHSAE1gIs