I wonder if anyone is bold enough to put his Delphi web application framework up for test since I don't see any in that list - I wonder how they would perform.

I wonder if anyone is bold enough to put his Delphi web application framework up for test since I don't see any in that list - I wonder how they would perform.

mORMot (A. Bouchez), DMVC (Daniele Teti), Mars (Andrea Magni), RADServer (Marco Cantù) - I guess there are more but those where the ones that came to my mind

https://www.techempower.com/benchmarks/

Comments

  1. The issue I have with all these linked benchmarks is that the projects being tested are probably written by the same person that might either be biased or does not do things equally well for each tested framework due to lack of knowledge. Also doing something on one machine via localhost connection is hardly giving any meaningful results but only a rough idea - if something is terribly bad there it will not get any better when testing remotely most likely.

    Anyway just to extrapolate a few random numbers: in both benchmarks that compared some delphi implemenations with others like node the delphi implementations were at most like 3 times faster than node whereas in the benchmark I put the link to node is around 20% of the fastest one give or take. But of course those tests are totally different and even in the benchmark i linked to you can see several frameworks being top in one test are at best mediocre at another.

    My interest would be to see them directly being compared to others (of course they mostly benchmark raw speed and not memory consumption).

    ReplyDelete
  2. I agree with you and that's why personally I think those tests are close to useless, including the one you provided. Environment, scenario, specific framework knowledge of settings and tweaks, etc.. The framework might be the fastest providing a simple JSON and when you are going to run in real world, there is some bottleneck elsewhere.

    So the best (and mostly only) way is to test yourself the closest to your scenario.

    ReplyDelete
  3. Wagner Landgraf I think the use cases used by techempower are quite realistic and far from useless.

    ReplyDelete
  4. Would be nice to have such kind of benchmark for the Delphi frameworks. To my knowledge it does no exists.

    ReplyDelete
  5. Christen Blom-Dahl That is why I put up the link here - it should be possible to make tests and provide a pull request.

    ReplyDelete
  6. I will give it a try, as soon as I find some time (not so easy these days as I am struggling writing the FMX book). I am pretty sure MARS may not be the fastest one for the simple reason I never pushed performances too much and I already know there is room for performance optimization in some areas. Given this I have no worries benchmarking a bit and this may reveal to be very useful to fine tune my todo list for the project 😉

    ReplyDelete
  7. I love this idea because it will:
    a) show which frameworks excel at a specific task, which will allow users to pick the right tool for the job, and
    b) act as a great learning opportunity and allow users valuable insight on a specific framework's optimization techniques.

    ReplyDelete
  8. Haha, i first thought that JavaScript was not included. Turns out I had to scroll all the way down to 25% to see the fastest JS entry.

    Delphi projects should be able to do better than that, right?!

    ReplyDelete
  9. Wouter van Nifterick it depends... It is not granted that simply switching a language you will obtain better performances.

    ReplyDelete
  10. Could be good too to see the tests run on Linux, since it is the cheapest and most used hosting platform. For mORMot, you will need to compile with FPC, and on production we usually put a nginx reverse proxy in front for the TLS layer.
    AFAIK there is already a Delphi-based server ready for TechEmpower - see synopse.info - Will mORMot join TechEmpower Framework Benchmarks(TFB)? (Page 1) / mORMot Framework / mORMot Open Source

    ReplyDelete
  11. Stefan Glienke Follow my link: you will find a repository with some codebase for Unibase, which uses the JavaScript engine and the REST layer of mORMot. Poster claims it is in the middle of the list from his tests. But it has not been supplied to the official list. I wrote it was "ready for", not "included in"/"supplied to".

    ReplyDelete
  12. A. Bouchez I am sorry but I cannot follow you - I only see a link to some UnityBase tests - how does it relate to mORMot? Because I don't see anything related to mORMot in that repo. From what I read (is this the one? https://unitybase.info/about-ub.html) it's some JS framework that uses some pieces from mORMot.

    ReplyDelete
  13. Yes, it is based on mORMot for 1) the DB access layer 2) the REST client/server over HTTP 3) the SpiderMonkey JavaScript engine - the latest running faster than the one in node (since it is nativelly multi-threaded).
    The post states that the JS layer is what slows down the process when he made some TechEmpower-like tests, and that "Even with JS implementation we are in the middle of the table. Pure mORMot must be much faster." - but we didn't make the full tests, for real benchmark is welcome!

    ReplyDelete

Post a Comment