Comments (12)
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.
I will be revisiting this for Vert.x 4.
from vertx-lang-scala.
You just became my personal hero :) Thanks for the effort!
from vertx-lang-scala.
@kajmagnus are you interested in contributing this in the community ?
from vertx-lang-scala.
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.
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.
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.
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.
@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.
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.
from vertx-lang-scala.
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)
- Support for Scala 3 HOT 3
- Add Maven quickstart to start.vertx.io HOT 2
- Add Gradle quickstart for start.vertx.io HOT 1
- Update vertx-scala.g8 to use the recent implementation
- Map Scala collections to Java collections and the other way round
- Create documentation site
- Fix CI pipeline HOT 1
- Improve JSON
- Fix compilation warnings HOT 1
- Artifact name should be vertx-lang-scala_3 instead of vertx-lang-scala3
- Support for scala 2.13 HOT 12
- Generation issue with classes having the same simple name. HOT 1
- sbt - Support for including resources to use CommandFactory HOT 2
- Integrate more into (functional) Scala environment HOT 8
- Lack of `Reactive PostgreSQL client` HOT 2
- Newly g8 generated project doesn't compile: getNowFuture does not exist HOT 7
- Cannot send event bus message between 2 verticles HOT 2
- Changes in upstream vertx dependencies causing failure in vertx-lang-scala_2.13 HOT 1
- How to consume the current package? HOT 1
- CVE-2021-45105
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vertx-lang-scala.