update time with -march=native flag

This commit is contained in:
NunoSempere 2024-02-11 19:24:00 +01:00
parent dd7c42d952
commit 54bd358f7e
2 changed files with 45 additions and 46 deletions

View File

@ -24,17 +24,17 @@ The name of this repository is a pun on two meanings of "time to": "how much tim
| Language | Time | Lines of code |
|-----------------------------|-----------|---------------|
| C | 5.6ms | 252 |
| squiggle.c | 8.2ms | 29* |
| Nim | 40.8ms | 84 |
| Lua (LuaJIT) | 69.9ms | 82 |
| OCaml (flambda) | 187.9ms | 123 |
| Squiggle (bun) | 0.387s | 14* |
| Javascript (node) | 0.445s | 69 |
| SquigglePy (v0.27) | 1.507s | 18* |
| R (3.6.1) | 4.508s | 49 |
| Python 3.9 | 11.879s | 56 |
| Gavin Howard's bc | 15.960s | 101 |
| C | 6.20ms | 252 |
| squiggle.c | 7.20ms | 29* |
| Nim | 41.10ms | 84 |
| Lua (LuaJIT) | 68.80ms | 82 |
| OCaml (flambda) | 185.50ms | 123 |
| Squiggle (bun) | 384.00ms | 14* |
| Javascript (node) | 0.423s | 69 |
| SquigglePy (v0.27) | 1.542s | 18* |
| R (3.6.1) | 4.494s | 49 |
| Python 3.9 | 11.909s | 56 |
| Gavin Howard's bc | 16.170s | 101 |
Time measurements taken with the [time](https://man7.org/linux/man-pages/man1/time.1.html) tool, using 1M samples. But different implementations use different algorithms and, occasionally, different time measuring methodologies (for the C, Nim and Lua implementations, I run the program 100 times and take the mean). Their speed was also measured under different loads in my machine. So I think that these time estimates are accurate within maybe ~2x or so.

View File

@ -1,39 +1,39 @@
# bc
time ghbc -l squiggle.bc estimate.bc
.8907201178102747
.8872657001481914
real 0m15.960s
user 0m15.948s
sys 0m0.000s
real 0m16.170s
user 0m16.115s
sys 0m0.008s
# C
Running 100x and taking avg time: OMP_NUM_THREADS=16 out/samples
Time using 16 threads: 5.60ms
Time using 16 threads: 6.20ms
# js (bun)
0.8867426270252042
0.8861715640546732
real 0m0.551s
user 0m0.527s
sys 0m0.055s
real 0m0.562s
user 0m0.540s
sys 0m0.074s
# js (node)
0.8878977218582866
0.8863245179136781
real 0m0.445s
user 0m0.523s
sys 0m0.060s
real 0m0.423s
user 0m0.509s
sys 0m0.077s
# lua (luajit)
Requires /bin/time, found on GNU/Linux systems
Running 100x and taking avg time of: luajit samples.lua
Time: 69.90ms
Time: 68.80ms
@ -41,7 +41,7 @@ Time: 69.90ms
Requires /bin/time, found on GNU/Linux systems
Running 100x and taking avg time of:
Time: 40.80ms
Time: 41.10ms
@ -49,48 +49,47 @@ Time: 40.80ms
Requires /bin/time, found on GNU/Linux systems
Running 100x and taking avg time of:
Time: 187.90ms
Time: 185.50ms
# Python (3.9)
0.8887373869178242
real 0m11.879s
user 0m12.129s
sys 0m1.055s
real 0m11.909s
user 0m12.149s
sys 0m1.145s
# R (3.6.1)
[1] 0.8899922
[1] 0.8862725
real 0m4.508s
user 0m4.476s
sys 0m0.028s
real 0m4.494s
user 0m4.465s
sys 0m0.025s
# Squiggle (0.8.6)
Requires /bin/time, found on GNU/Linux systems
Running 100x and taking avg time of:
Time: 386.80ms
Time: 384.00ms
# SquigglePy (0.27)
time python3.9 samples.py
0%| | 0/4 [00:00<?, ?it/s] 75%|███████▌ | 3/4 [00:00<00:00, 27.07it/s] 100%|██████████| 4/4 [00:00<00:00, 23.38it/s]
0%| | 0/1000000 [00:00<?, ?it/s] 10%|█ | 104035/1000000 [00:00<00:00, 1040346.03it/s] 24%|██▍ | 238684/1000000 [00:00<00:00, 1220429.41it/s] 38%|███▊ | 376402/1000000 [00:00<00:00, 1292004.08it/s] 51%|█████▏ | 514235/1000000 [00:00<00:00, 1326083.80it/s] 65%|██████▌ | 654235/1000000 [00:00<00:00, 1352735.46it/s] 80%|███████▉ | 795746/1000000 [00:00<00:00, 1373942.14it/s] 93%|█████████▎| 934912/1000000 [00:00<00:00, 1379731.72it/s] it/s]
0.8879525229675179
100%|█████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:00<00:00, 22.58it/s]
it/s]
0.8876134007583529
real 0m1.507s
user 0m1.969s
sys 0m2.201s
real 0m1.542s
user 0m1.989s
sys 0m2.226s
# squiggle.c
Running 100x and taking avg time: OMP_NUM_THREADS=16 ./samples
Time using 16 threads: 12.70ms
Time using 16 threads: 7.20ms