Earlier quoted context omitted.
While we're on the subject... Has anyone tried out Revel[.]? If so, what are your thoughts on it? [.] https://github.com/robfig/revel
(Disclaimer: I'm pretty new to Go). I tried Revel out a little while ago, and found it awesome at first. It felt like it could have the potential to dramatically speed up the development of Go web apps. I like the server and hotswapping features a lot, for instance. But at the moment unfortunately I don't think it's very mature. Support for interacting with the DB, arguably the most important part of a web applicatio…
Web Framework Benchmarks Round 4
231–240 of 358 posts
Re: Web Framework Benchmarks Round 4
#232Earlier quoted context omitted.
Raw PHP (with no framework, no ORM) does well in the 20 query test, but unfortunately you have to go down pretty far before any of the PHP frameworks show up on that list. If I filter to just show PHP, the 20 query test shows that the first framework is less than 50% the performance of raw PHP.
Looking into the code, the raw PHP is using PDO with persistent connections, and I'm not sure that's turned on in any of the frameworks. It looks like it's off by default in Redbean at least. No idea if this makes a big difference, I haven't had time to try it out.
Re: Web Framework Benchmarks Round 4
#233Earlier quoted context omitted.
I don't consider the Go size pretty small. Mojolicious[1], Dancer[2] and Kelp[3] have set the bar for small code size for me. Not sure yet if there are smaller ones (note that there are no other files required for those apps, period) In the same vein, Lua's OpenResty[4] looks good, as do Tornado[5], Flask[6] and Bottle[7] (although you need to tease the raw/ORM methods apart to get an idea for the last two). And of c…
>>I don't consider the Go size pretty small. You realize that Go implements the new template test right? Your linked ones do not (at least the ones I spot checked). Also, Go is statically typed = win
Actually I find Perl's type system to make the most sense for web work:
1) Any zero length string or 0 valued int is classed as false, which is handy when checking the returns from query strings et al.
2) You can use eq for string comparison or == for numeric checking, which means which is handy has you can read values from a query string and then compare it against an int without having to do type conversion.
Don't get me wrong, I don't have anything against statically typed languages - in fact I normally prefer them. But the way Perl does type checking I find reduces the number of type problems when dealing with web development.
That all said, I much prefer working with structured types in Go than in Perl.
Re: Web Framework Benchmarks Round 4
#234Whenever I hear "Java" I also get association "slow". But looking into this list - java web frameworks doing incredible job!
Check out the graphs on the "benchmark game": http://benchmarksgame.alioth.debian.org/u32/benchmark.php?te... The JVM indeed kicks some major butt.
Re: Web Framework Benchmarks Round 4
#235Earlier quoted context omitted.
Would it be too much to ask to also run a Windows VM? Or use Mono?
Linux amd64 is the dominate internet serving platform; supporting a non-free OS for the benefit of a single test entry seems dumb. I'm all for a Mono entry however.
Re: Web Framework Benchmarks Round 4
#236It'd be nice to also have a "lines of code" comparison, because i can see how some benchmarks are at the top but after looking at the code they also tend to be quite "manual".
We do plan to start tackling that other dimension, efficiency. Source lines of code is one objective measure that, for all its faults, we plan to include. In a previous round, I pasted the relevant code directly into the results view. I will likely do that again soon since it's convenient for the reader. For the time being, I invite you to browse the Github repository and examine the test implementation source.
Re: Web Framework Benchmarks Round 4
#237Before looking at the benchmark results, I took a glance at the Node source and I expected it to perform worse than it did previously. It does almost universally. Not only haven't the glaring perf issues remained since round 1, it's added more. In the real world, when you look at a metric that says your req/s is a bottleneck, which is what this benchmark is loosely simulating, you'd fix it. You wouldn't just say "nop…
Says someone (many someones) about every benchmark, ever. I've never seen a benchmark that yields universal praise, every one earning criticism from people who don't like the results.
What is the value of a framework? Is it speed?
This is clearly a benchmark of performance. Is that the single value of a framework? Of course it isn't. But you certainly shouldn't stick your head in the sand about it.
Re: Web Framework Benchmarks Round 4
#238There should be no surprise that interpreted, dynamic languages are utterly out-gunned as compared to compiled (JIT'd or otherwise) languages. It's inherent to the system - every little thing you do costs more. Many people choose Ruby and figure, given that premature optimization is the root of all evil, they'll optimize later if needed. That's like choosing between a farm tractor or a ferrari - and figuring if the t…
Re: Web Framework Benchmarks Round 4
#239This is the most recent update to our ongoing project measuring the performance of web application platforms and frameworks. In this round we've received several more community-contributed tests in Perl, PHP, Python, Java, and JavaScript. Go is a comeback champion thanks to changes made by Brad Fitzpatrick [1] and others in the Go community. A new "Fortunes" test was also added (implemented in 17 of the frameworks) t…
Re: Web Framework Benchmarks Round 4
#240Lua is impressive - the first as a non-compiled lang. Is that Lua or Luajit in OpenResty?