Giter Club home page Giter Club logo

Comments (12)

NikolajLeischner avatar NikolajLeischner commented on September 7, 2024 4

FYI, I took the liberty of porting the Java version of the Techempower Vert.x benchmark to Scala.

https://www.techempower.com/benchmarks/#section=test&runid=668c43a2-5caa-4075-91ab-8ee9537b5dec
https://github.com/TechEmpower/FrameworkBenchmarks/tree/master/frameworks/Scala/vertx-web-scala

The code for the database queries is quite close to the Java version since I didn't take the time to wrap the reactive-pg-client API to make it more idiomatic for Scala.

Also, I used Twirl for HTML templating, which might explain the lower performance in the 'Fortunes' benchmark, compared to 'vertx-postgress'.

Feel free to improve on this :)

from vertx-lang-scala.

codepitbull avatar codepitbull commented on September 7, 2024 2

I will be revisiting this for Vert.x 4.

from vertx-lang-scala.

codepitbull avatar codepitbull commented on September 7, 2024 1

You just became my personal hero :) Thanks for the effort!

from vertx-lang-scala.

vietj avatar vietj commented on September 7, 2024

@kajmagnus are you interested in contributing this in the community ?

from vertx-lang-scala.

codepitbull avatar codepitbull commented on September 7, 2024

Benchmarking the different language implementation sounds like a great idea.
It's something I have been thinking about for quite a while but I am running into the same problem: time.
I'd be happily supporting such an effort nbut won't be able to pull it off alone since I maintiain vertx-lang-scala in my freetime.

from vertx-lang-scala.

codepitbull avatar codepitbull commented on September 7, 2024

I will keep this issue open as a reminder and a possible entry point for others to get started on this topic.

from vertx-lang-scala.

kajmagnus avatar kajmagnus commented on September 7, 2024

codepitbull: Ok :- )

@vietj I'm too short of time (because of working in a small startup), otherwise seems like an interesting thing to do

from vertx-lang-scala.

kajmagnus avatar kajmagnus commented on September 7, 2024

Wow this is amazing: https://www.techempower.com/benchmarks/#section=test&runid=668c43a2-5caa-4075-91ab-8ee9537b5dec&hw=ph&test=query — vertx-web-scala is number 4, in the Multiple Queries test (which in my case is the one closest to "reality" I think ... had I been using Vert.x not Play Fmw).

Thanks @NikolajLeischner for porting. (B.t.w. about database layer, in my case I use plain JDBC directly, no Object-Relational mappers or anything. Not sure if that's what you mean with more close to the Java version? I.e. using no ORM? From my perspective avoiding ORM:s is equally realistic as using ORMs :- ))

from vertx-lang-scala.

NikolajLeischner avatar NikolajLeischner commented on September 7, 2024

@kajmagnus By that I mean how the database access works code-wise. It uses callbacks and actual while-loops, which isn't how one wants Scala code to look like normally :)

from vertx-lang-scala.

codepitbull avatar codepitbull commented on September 7, 2024

This is great and also shows areas where vertx-scala should be improved.
The pgClient is something I haven't touched so far because ... well, I simply didn't think about it.
There is a new version of vertx-scala in the works (https://github.com/vert-x3/vertx-lang-scala/tree/4.0) which is completely based on extension methods.
This should bring down the allocation rate a lot.
I should tackle the reactiverse stuff and provide the needed extensions.
Thanks again, great work :)

from vertx-lang-scala.

vietj avatar vietj commented on September 7, 2024

from vertx-lang-scala.

oliver-brm avatar oliver-brm commented on September 7, 2024

I think it's time to close this issue. There is a benchmark app, as mentioned, in the TechEmpower/FrameworkBenchmarks repository. It's currently using Vert.x 3.9, Scala 2.12 and is running on JVM 17. We should upgrade it to the latest Vert.x/Scala version. But that's not in scope for this issue anymore. Thanks for the good work!

from vertx-lang-scala.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.