[Ur] TechEmpower benchmarks Round 9

Adam Chlipala adamc at csail.mit.edu
Fri May 2 09:27:32 EDT 2014


They're out, and they include a serious Ur/Web configuration error for 
one of the platforms (and I hope this error is fixed in amended 
results), but there is already some good info here to support claims of 
high performance for Ur/Web.  Here's the text I added to the FAQ:


    Can you be more specific about run-time performance?

The TechEmpower Web Framework Benchmarks 
<http://www.techempower.com/benchmarks/> provide a performance 
comparison managed by a third party. Ur/Web does pretty well, and you 
can check that site for details, but a few caveats are important. First, 
the Ur/Web programming model is unusually oriented toward security and 
concurrency simplicity. For instance, Ur/Web's standard random number 
generation function generates cryptographically secure numbers, which 
imposes an extra run-time cost in the several benchmarks based on random 
numbers; and Ur/Web's concurrency model allows the programmer to think 
of every piece of code as running inside a transaction, which imposes 
extra run-time cost in the several benchmarks that use databases, 
necessarily within a transaction per request, unlike in almost all other 
frameworks' entries in the benchmarks. Also, by the way, the current i7 
numbers were captured under a serious configuration error and should be 
ignored.

OK, having said all that, Ur/Web is still doing pretty darn well! 
Consider the results for the highest-capacity machine in the benchmarks, 
which provides 48 hardware threads. In rough numbers, here's how Ur/Web 
is doing.

Test 	Requests/sec. 	Latency
Hello world in JSON 	400k 	0.6 ms
1 SQL query 	100k 	2 ms
20 SQL queries 	10k 	24 ms
20 SQL query/update pairs 	500 	2 s

Yeah, Ur/Web is really falling over in the many-updates test, with 
optimistic SQL concurrency thrashing to provide the transactional 
semantics that most benchmark entrants don't bother to shoot for. Still, 
very few web sites process as much as hundreds of requests per second!

Despite Ur/Web's performance handicaps in service of a pleasant 
programming model, on the Fortunes test, which is closest to the 
scenario Ur/Web was designed for, Ur/Web has the best latency and 
4th-best throughput, out of about 50 frameworks passing that test's 
basic sanity check. In the spirit of sibling rivalry, I'll also point 
out that the Haskell frameworks consistently achieve less than half the 
throughput of Ur/Web.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.impredicative.com/pipermail/ur/attachments/20140502/5b81c539/attachment.html>


More information about the Ur mailing list