https://github.com/niklas-heer/speed-comparison
A repo which compares the speed of different programming languages.
https://github.com/niklas-heer/speed-comparison
c clojure docker elixir golang hacktoberfest javascript julia nim-lang php programming-languages python ruby speed-comparison swift
Last synced: 18 days ago
JSON representation
A repo which compares the speed of different programming languages.
- Host: GitHub
- URL: https://github.com/niklas-heer/speed-comparison
- Owner: niklas-heer
- License: mit
- Created: 2018-02-17T15:32:47.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-31T16:47:25.000Z (7 months ago)
- Last Synced: 2025-05-13T17:09:37.952Z (20 days ago)
- Topics: c, clojure, docker, elixir, golang, hacktoberfest, javascript, julia, nim-lang, php, programming-languages, python, ruby, speed-comparison, swift
- Language: Earthly
- Homepage: https://niklas-heer.github.io/speed-comparison
- Size: 12 MB
- Stars: 559
- Watchers: 16
- Forks: 82
- Open Issues: 37
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

---
# Speed comparison of programming languages
This projects tries to compare the speed of different programming languages.
In this project we don't really care about getting a precise calculation of pi. We only want to see how fast are the programming languages doing.
It uses an implementation of the [Leibniz formula for π](https://en.wikipedia.org/wiki/Leibniz_formula_for_%CF%80) to do the comparison.
Here is a video which explains how it works: [Calculating π by hand](https://www.youtube.com/watch?v=HrRMnzANHHs)You can find the results here: https://niklas-heer.github.io/speed-comparison/
## Disclaimer
I'm no expert in all these languages, so take my results with a grain of salt.
Also the findings just show how good the languages can handle floating point operations, which is only one aspect of a programming language.You are also welcome to contribute and help me fix my possible horrible code in some languages. :smile:
## Run it yourself
Everything is run by a Docker container and a bash script which envokes the programs.
To measure the execution time a [python package](https://pypi.python.org/pypi/lauda/1.2.0) is used.
### Requirements
- `Docker`
- [earthly](https://earthly.dev/)### Run everything
Earthly allows to run everything with a single command:
```bash
earthly --config earthly-config.yml +all
```
This will run all tasks to collect all measurements and then run the analysis.### Collect data
To collect data for all languages run:
```bash
earthly --config earthly-config.yml +collect-data
```To collect data for a single languages run:
```bash
earthly --config earthly-config.yml +
```### Analyse results
To generate the combined CSV out of all results use this command:
```bash
earthly --config earthly-config.yml +analysis
```## FAQ
> Why do you also count reading a file and printing the output?
Because I think this is a more realistic scenario to compare speeds.
> Are the compile times included in the measurements?
No they are not included, because when running the program in the real world this would also be done before.
## Thanks
The list of Contributors is automatically generated.### Contributors
![]()
Niklas Heer
![]()
Francesco Alemanno
![]()
Yu Zhu
![]()
Jerry Ling
![]()
Gaute Hope
![]()
frak0d
![]()
Jonathan Carroll
![]()
Sıddık AÇIL
![]()
Serg Gini
![]()
Gabriel Baraldi
![]()
Samuel
![]()
Joe Landman
![]()
Sandeep Kumar
![]()
mattn
![]()
Páll Haraldsson
![]()
Oscar Smith
![]()
Michael Abbott
![]()
Lorenzo Gabriele
![]()
LazyKernel
![]()
Chris Nuernberger
![]()
DirkieDurky
![]()
Gui Zhen Wei
![]()
RDPatrickTheDev
![]()
Proudust
![]()
Sergey Trofimov
![]()
Thomas A Caswell
![]()
Tomohiro
![]()
genmeblog
![]()
Yuta Imazu
![]()
Kohei Hosoki
### Special thanks
#### sharkdp
For creating [hyperfine](https://github.com/sharkdp/hyperfine) which is used for the fundamental benchmarking.
#### Thomas
This projects takes inspiration from [Thomas](https://www.thomaschristlieb.de) who did a similar comparison [on his blog](https://www.thomaschristlieb.de/performance-vergleich-zwischen-verschiedenen-programmiersprachen-und-systemen/).