Is CoreCLR really that much faster than Mono?

This page summarizes the projects mentioned and recommended in the original post on /r/dotnet

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • Oberon

    Oberon parser, code model & browser, compiler and IDE with debugger

  • Did you have a look at the links? I even posted the comiled assemblies (http://software.rochus-keller.ch/Are-we-fast-yet_CLI_2021-08-28.zip) in case you want to reproduce. Just run "mono Main.exe" or "dotnet Main.exe". The results are printed to the command line. In case you want to compile everything yourself, you have to build OBXMC from https://github.com/rochus-keller/Oberon, which then is run on the https://github.com/rochus-keller/Oberon/tree/master/testcases/Are-we-fast-yet project, which generates the .il files included in the ZIP, which then are compiled using ILASM; the result are the DLLs (i.e. .NET assemblies) included in the ZIP.

  • are-we-fast-yet

    Are We Fast Yet? Comparing Language Implementations with Objects, Closures, and Arrays

  • But my measurements based on the Are-we-fast-yet benchmark suite (see https://github.com/smarr/are-we-fast-yet and https://github.com/rochus-keller/Oberon/tree/master/testcases/Are-we-fast-yet) show a completely different picture. Here the difference between Mono and CoreCLR (both versions 3 and 5) is within +/- 10%, so nothing earth shattering.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • Smalltalk

    Parser, code model, interpreter and navigable browser for the original Xerox Smalltalk-80 v2 sources and virtual image file (by rochus-keller)

  • As a developer I'm interested in performance comparisons related to real-world applications. It's nice to know that a technology might perform stunningly on some isolated number crunching problems, but that usualy doesn't relate to my work (it might be relevant if you implement coin mining or the like). Ideally, one could compare entire applications; I did this once with a Smalltalk VM (https://github.com/rochus-keller/Smalltalk), but it's a lot of work. So you need benchmark suites that represent a good compromise between implementation effort and meaningfulness. From my point of view, this is fulfilled with Are-we-fast-yet suite. See e.g. https://stefan-marr.de/papers/dls-marr-et-al-cross-language-compiler-benchmarking-are-we-fast-yet/.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts