Delphi Scimark Field Test
Benchmarks show NET based C#, F#, VB.NET doesn't deliver, FP beats D12.3, Both FP and Delphi don't stand a chance against C++, Go, Rust and Java.
This blog would like to get crowdsource SciMark field test results for compiled binaries for Delphi 10.2 x64, Delphi 12.3 x64, FreePascal 3 x64 -O2 performance, NET and Java.
Motivations
Why not blog about your Scimark performance? In open-benchmarking, Java Scimark is used1 as one of the tests to benchmark hardware. There is an apple to oranges equivalency - how Java performs vs. how Delphi code performs.
There’s C# version of SciMark2. The C++ version of SciMark3 is by Embarcadero as a test to show their new C++ Builder LLVM-based C++ compiler.
The repository is in SourceForge. Use this link4, select download snapshot.
Run the RunAll.bat. It will generate a group of files.
You can get open-benchmarks5 and obtain publicly available test results6.
After running the Scimark test, you’ll end-up with the below graph.
Hurtful Truths
The latest build of Delphi, Athens 12.3 has stagnated. FreePascal’s performance exceeded Delphi 12.3 in both x86 and x64.
Code Typhoon, a fork of FreePascal, is really slow. Sometimes the run-time execution of Code Typhoon is similar speed to Python.
Paying for poor performance
Since Delphi changed owners, from Borland to Imprise, Imprise to CodeGear, later called DevCo, Embarcadero owned by Thoma Bravo, then IDERA, the tiers - Delphi Enterprise, Delphi Architect offering have stayed the same.
Except for Bold - the Delphi Architect offering that disappeared due to a blunder when Borland was renamed to Imprise, the offering have not changed. None of the offerings has moved from Delphi Enterprise to Delphi Professional.
Bold is now opensource7 after more than a decade presumed lost, missing or it’s sources misplaced.
Enterprise Delphi: DataSnap issue
Datasnap was first introduced in Delphi 3 in 1997 as MIDAS (Middleware Independent Database Application Software) then renamed to DataSnap, it’s performance has stagnated.
Imagine you are tasked to build a MIDAS server, vs. using Java Enterprise Server and tasked to benchmark the two.
Delphi DataSnap performs poorly. Mormot reached #1 on TechEmpower using FreePascal. Where is DataSnap?
Enterprise Delphi: MSSQL, Oracle, MySQL remote issue
FireDac was originally from AnyDac8. Those who purchased AnyDac… can remember it used to have MySQL, MSSQL, Oracle and other database connectivity drivers at no extra charge. Since Embarcadero brought over AnyDac, it split-up its offerings so remotely accesing MySQL or Interbase9 can result in an error.
If you need to connect to exotic databases - MongoDb, MSSQL or Oracle, you need to upgrade to Delphi Enterprise… and encounter poor performance10.
Delphi Professional users get stuck with a stark choice: forced to pay additional annual fees or use open-source code.
As stated above, open-source drivers have exceeded Delphi’s FireDac performance.
Developers are paying for Delphi Enterprise to obtain DataSnap, Delphi for Linux, MSSQL Drivers.
Datasnap: poor performance.
MSSQL drivers: poor performance, many StackOverflow questions not answered.
They deserve better.
Every year, Embarcadero demands money for Software Assurance, and if your computer malfunctions twice, too bad.
Deploy your Delphi server app - a UniGui or IntraWeb or Datasnap EXE on Windows - you need a powerful server. Your server costs are going to be huge. Deploying Java, C# or Go or Rust costs significantly less.
Why should you pay annual costs when Java, C# (using VS Code), Go or Rust do not require an annual SA subscription?
Should you be paying for poor performance, year after year?
For the critics who say, use UniDac or Zeos database, or use FreePascal, once a Delphi developer converts all their code to FreePascal, Java, Go or Rust… or Flutter11, they know the what to do next.
Let us know your thoughts in the comment box below.
Link to C# article corrections - https://open.substack.com/pub/delphinightmares/p/delphi-scimark-field-test-corrections?r=2wau0y&utm_campaign=post&utm_medium=web&showWelcomeOnShare=false.
Replacing their code generator with LLVM is the only way for them to get back on track for performance, but I don't trust they will