mirror of
https://github.com/vlang/v.git
synced 2025-09-13 22:42:26 +03:00
bench/vectors: update the README.md with instructions of how to make a release build for the C# code, add measurements
This commit is contained in:
parent
88cac9bdf4
commit
b36042d946
1 changed files with 85 additions and 16 deletions
|
@ -1,32 +1,101 @@
|
||||||
Running the C# example:
|
Running the C# program:
|
||||||
|
====================================
|
||||||
```
|
```
|
||||||
dotnet run
|
dotnet run
|
||||||
```
|
```
|
||||||
|
|
||||||
Running the V program:
|
Creating a release version of the C# program:
|
||||||
|
```
|
||||||
|
dotnet publish -c Release -r ubuntu.20.04-x64
|
||||||
|
```
|
||||||
|
|
||||||
|
The generated executable will be in
|
||||||
|
`/v/vnew/bench/vectors/bin/Release/net7.0/ubuntu.20.04-x64/publish/vectors`
|
||||||
|
Its size is ~64MB . After stripping, the executable shrinks to just 11MB,
|
||||||
|
but unfortunately it also stops running after stripping :-| .
|
||||||
|
|
||||||
|
Compiling and running the V program:
|
||||||
|
====================================
|
||||||
```
|
```
|
||||||
v crun vectors.v
|
v crun vectors.v
|
||||||
```
|
```
|
||||||
|
... produces and runs an executable `vectors` which is ~1.3MB in size.
|
||||||
|
|
||||||
Running the V program, compiled with -prod:
|
|
||||||
|
Compiling and running the V program, compiled with -prod:
|
||||||
```
|
```
|
||||||
v -prod crun vectors.v
|
v -prod crun vectors.v
|
||||||
```
|
```
|
||||||
|
... produces and runs an executable `vectors` which is ~176KB in size.
|
||||||
|
After stripping, the executable shrinks to 157KB. It can still run after
|
||||||
|
stripping.
|
||||||
|
|
||||||
Note: the `crun` will make sure that the compilation will happen just
|
|
||||||
|
Note: using `crun` will make sure that the compilation will happen just
|
||||||
once at the start, and then the executable will be just reused by the
|
once at the start, and then the executable will be just reused by the
|
||||||
subsequent commands with identical options.
|
subsequent commands with identical options. It will also ensure that
|
||||||
|
the compiled executable will not be removed, unlike `run` .
|
||||||
|
|
||||||
```bash
|
|
||||||
Benchmark 1: ./boids_test/bin/Release/net7.0/linux-x64/publish/boids_test
|
|
||||||
Time (mean ± σ): 262.2 ms ± 5.7 ms [User: 231.6 ms, System: 14.1 ms]
|
|
||||||
Range (min … max): 255.4 ms … 275.3 ms 11 runs
|
|
||||||
|
|
||||||
Benchmark 2: ./vinted_report_generator/main
|
Some measurements and comparisons
|
||||||
Time (mean ± σ): 208.3 ms ± 1.9 ms [User: 205.4 ms, System: 1.6 ms]
|
====================================
|
||||||
Range (min … max): 204.9 ms … 210.6 ms 14 runs
|
Note: the folowing was done on Intel(R) Core(TM) i3-3225, 16GB RAM:
|
||||||
|
```
|
||||||
Summary
|
#0 13:41:35 ᛋ master /v/vnew/bench/vectors❱rm -rf vectors
|
||||||
./vinted_report_generator/main ran
|
#0 13:41:49 ᛋ master /v/vnew/bench/vectors❱
|
||||||
1.26 ± 0.03 times faster than ./boids_test/bin/Release/net7.0/linux-x64/publish/boids_test
|
#0 13:41:49 ᛋ master /v/vnew/bench/vectors❱v -o vectors_development vectors.v
|
||||||
|
#0 13:42:14 ᛋ master /v/vnew/bench/vectors❱v -o vectors_production -prod vectors.v
|
||||||
|
#0 13:42:28 ᛋ master /v/vnew/bench/vectors❱
|
||||||
|
#0 13:42:29 ᛋ master /v/vnew/bench/vectors❱hyperfine ./bin/Release/net7.0/ubuntu.20.04-x64/publish/vectors ./vectors_development ./vectors_production
|
||||||
|
Benchmark 1: ./bin/Release/net7.0/ubuntu.20.04-x64/publish/vectors
|
||||||
|
Time (mean ± σ): 347.4 ms ± 7.4 ms [User: 334.4 ms, System: 13.0 ms]
|
||||||
|
Range (min … max): 340.2 ms … 361.7 ms 10 runs
|
||||||
|
|
||||||
|
Benchmark 2: ./vectors_development
|
||||||
|
Time (mean ± σ): 882.6 ms ± 14.0 ms [User: 880.3 ms, System: 2.3 ms]
|
||||||
|
Range (min … max): 862.4 ms … 912.9 ms 10 runs
|
||||||
|
|
||||||
|
Benchmark 3: ./vectors_production
|
||||||
|
Time (mean ± σ): 217.9 ms ± 9.4 ms [User: 216.8 ms, System: 0.9 ms]
|
||||||
|
Range (min … max): 206.4 ms … 241.3 ms 12 runs
|
||||||
|
|
||||||
|
Summary
|
||||||
|
./vectors_production ran
|
||||||
|
1.59 ± 0.08 times faster than ./bin/Release/net7.0/ubuntu.20.04-x64/publish/vectors
|
||||||
|
4.05 ± 0.19 times faster than ./vectors_development
|
||||||
|
#0 13:43:00 ᛋ master /v/vnew/bench/vectors❱
|
||||||
|
#0 13:45:07 ᛋ master /v/vnew/bench/vectors❱ls -nlarS ./bin/Release/net7.0/ubuntu.20.04-x64/publish/vectors ./vectors_development ./vectors_production
|
||||||
|
-rwxrwxr-x 1 1000 1000 179384 Sep 6 13:42 ./vectors_production
|
||||||
|
-rwxrwxr-x 1 1000 1000 1320764 Sep 6 13:42 ./vectors_development
|
||||||
|
-rwxr-xr-x 1 1000 1000 66732821 Sep 6 13:40 ./bin/Release/net7.0/ubuntu.20.04-x64/publish/vectors
|
||||||
|
#0 13:45:12 ᛋ master /v/vnew/bench/vectors❱
|
||||||
|
#0 13:53:12 ᛋ master /v/vnew/bench/vectors❱alias xtime='/usr/bin/time -f "CPU: %Us\tReal: %es\tElapsed: %E\tRAM: %MKB\t%C"'
|
||||||
|
#0 13:53:42 ᛋ master /v/vnew/bench/vectors❱xtime ./vectors_development
|
||||||
|
5.0498380931718074e+07 - 5.0504723697762154e+07 - 5.040198063489048e+07
|
||||||
|
0.0 - 0.0 - 0.0
|
||||||
|
CPU: 0.87s Real: 0.87s Elapsed: 0:00.87 RAM: 4404KB ./vectors_development
|
||||||
|
#0 13:53:52 ᛋ master /v/vnew/bench/vectors❱xtime ./vectors_production
|
||||||
|
4.971971434731853e+07 - 4.973120986372047e+07 - 5.030988639116867e+07
|
||||||
|
0.0 - 0.0 - 0.0
|
||||||
|
CPU: 0.20s Real: 0.20s Elapsed: 0:00.20 RAM: 3228KB ./vectors_production
|
||||||
|
#0 13:53:58 ᛋ master /v/vnew/bench/vectors❱xtime ./bin/Release/net7.0/ubuntu.20.04-x64/publish/vectors
|
||||||
|
(49627678.97075553, 50302418.6269631, 49705582.70645027)
|
||||||
|
(0, 0, 0)
|
||||||
|
CPU: 0.33s Real: 0.34s Elapsed: 0:00.34 RAM: 30544KB ./bin/Release/net7.0/ubuntu.20.04-x64/publish/vectors
|
||||||
|
#0 13:54:02 ᛋ master /v/vnew/bench/vectors❱
|
||||||
|
#0 14:01:33 ᛋ master /v/vnew/bench/vectors❱
|
||||||
|
#0 14:01:35 ᛋ master /v/vnew/bench/vectors❱xtime v vectors.v
|
||||||
|
CPU: 0.41s Real: 0.36s Elapsed: 0:00.36 RAM: 59412KB v vectors.v
|
||||||
|
#0 14:01:41 ᛋ master /v/vnew/bench/vectors❱
|
||||||
|
#0 14:01:42 ᛋ master /v/vnew/bench/vectors❱xtime v -prod vectors.v
|
||||||
|
CPU: 4.97s Real: 5.11s Elapsed: 0:05.11 RAM: 80732KB v -prod vectors.v
|
||||||
|
#0 14:01:48 ᛋ master /v/vnew/bench/vectors❱
|
||||||
|
#0 14:01:50 ᛋ master /v/vnew/bench/vectors❱xtime dotnet publish -c Release -r ubuntu.20.04-x64
|
||||||
|
MSBuild version 17.7.1+971bf70db for .NET
|
||||||
|
Determining projects to restore...
|
||||||
|
All projects are up-to-date for restore.
|
||||||
|
vectors -> /v/vnew/bench/vectors/bin/Release/net7.0/ubuntu.20.04-x64/vectors.dll
|
||||||
|
vectors -> /v/vnew/bench/vectors/bin/Release/net7.0/ubuntu.20.04-x64/publish/
|
||||||
|
CPU: 2.34s Real: 2.64s Elapsed: 0:02.64 RAM: 159816KB dotnet publish -c Release -r ubuntu.20.04-x64
|
||||||
|
#0 14:01:56 ᛋ master /v/vnew/bench/vectors❱
|
||||||
```
|
```
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue