Conversation
There was a problem hiding this comment.
Benchmark Results
Details
| Benchmark | Current: 2bde53c | Previous: 07d3301 | Performance Ratio |
|---|---|---|---|
| startup_benchmark Build Time | 89.59 s |
89.18 s |
1.00 ❗ |
| startup_benchmark File Size | 0.78 MB |
0.78 MB |
1.00 ❗ |
| Startup Time - 1 core | 0.81 s (±0.03 s) |
0.80 s (±0.04 s) |
1.02 |
| Startup Time - 2 cores | 0.81 s (±0.03 s) |
0.81 s (±0.03 s) |
1.00 |
| Startup Time - 4 cores | 0.82 s (±0.03 s) |
0.83 s (±0.03 s) |
0.98 |
| multithreaded_benchmark Build Time | 90.49 s |
92.43 s |
0.98 ❗ |
| multithreaded_benchmark File Size | 0.89 MB |
0.89 MB |
1.00 ❗ |
| Multithreaded Pi Efficiency - 2 Threads | 89.92 % (±6.97 %) |
90.75 % (±6.76 %) |
0.99 |
| Multithreaded Pi Efficiency - 4 Threads | 45.02 % (±2.69 %) |
44.75 % (±3.33 %) |
1.01 |
| Multithreaded Pi Efficiency - 8 Threads | 26.03 % (±1.43 %) |
25.74 % (±1.81 %) |
1.01 |
| micro_benchmarks Build Time | 98.59 s |
99.63 s |
0.99 ❗ |
| micro_benchmarks File Size | 0.89 MB |
0.90 MB |
0.99 ❗ |
| Scheduling time - 1 thread | 71.52 ticks (±4.23 ticks) |
71.75 ticks (±4.55 ticks) |
1.00 |
| Scheduling time - 2 threads | 38.66 ticks (±4.00 ticks) |
39.08 ticks (±4.44 ticks) |
0.99 |
| Micro - Time for syscall (getpid) | 3.05 ticks (±0.26 ticks) |
3.13 ticks (±0.27 ticks) |
0.97 |
| Memcpy speed - (built_in) block size 4096 | 75574.66 MByte/s (±52315.99 MByte/s) |
75616.90 MByte/s (±52577.63 MByte/s) |
1.00 |
| Memcpy speed - (built_in) block size 1048576 | 30259.88 MByte/s (±24993.79 MByte/s) |
29990.09 MByte/s (±24687.99 MByte/s) |
1.01 |
| Memcpy speed - (built_in) block size 16777216 | 22880.37 MByte/s (±19056.83 MByte/s) |
24067.71 MByte/s (±19970.69 MByte/s) |
0.95 |
| Memset speed - (built_in) block size 4096 | 75904.96 MByte/s (±52526.33 MByte/s) |
75500.18 MByte/s (±52500.81 MByte/s) |
1.01 |
| Memset speed - (built_in) block size 1048576 | 31024.08 MByte/s (±25423.94 MByte/s) |
30765.36 MByte/s (±25121.72 MByte/s) |
1.01 |
| Memset speed - (built_in) block size 16777216 | 23561.65 MByte/s (±19510.11 MByte/s) |
24807.43 MByte/s (±20464.41 MByte/s) |
0.95 |
| Memcpy speed - (rust) block size 4096 | 67423.74 MByte/s (±47102.30 MByte/s) |
69070.89 MByte/s (±48290.91 MByte/s) |
0.98 |
| Memcpy speed - (rust) block size 1048576 | 30212.31 MByte/s (±25044.88 MByte/s) |
29768.99 MByte/s (±24513.26 MByte/s) |
1.01 |
| Memcpy speed - (rust) block size 16777216 | 22370.41 MByte/s (±18578.12 MByte/s) |
24637.88 MByte/s (±20514.70 MByte/s) |
0.91 |
| Memset speed - (rust) block size 4096 | 67693.05 MByte/s (±47273.95 MByte/s) |
69563.89 MByte/s (±48684.23 MByte/s) |
0.97 |
| Memset speed - (rust) block size 1048576 | 30967.65 MByte/s (±25445.30 MByte/s) |
30549.28 MByte/s (±24960.18 MByte/s) |
1.01 |
| Memset speed - (rust) block size 16777216 | 22987.39 MByte/s (±18977.50 MByte/s) |
25362.78 MByte/s (±20979.00 MByte/s) |
0.91 |
| alloc_benchmarks Build Time | 96.39 s |
91.86 s |
1.05 ❗ |
| alloc_benchmarks File Size | 0.86 MB |
0.85 MB |
1.01 ❗ |
| Allocations - Allocation success | 100.00 % |
100.00 % |
1 |
| Allocations - Deallocation success | 100.00 % |
100.00 % |
1 |
| Allocations - Pre-fail Allocations | 100.00 % |
100.00 % |
1 |
| Allocations - Average Allocation time | 11977.75 Ticks (±171.15 Ticks) |
8634.49 Ticks (±216.63 Ticks) |
1.39 ❗ |
| Allocations - Average Allocation time (no fail) | 11977.75 Ticks (±171.15 Ticks) |
8634.49 Ticks (±216.63 Ticks) |
1.39 ❗ |
| Allocations - Average Deallocation time | 986.67 Ticks (±213.05 Ticks) |
1135.91 Ticks (±535.66 Ticks) |
0.87 |
| mutex_benchmark Build Time | 93.14 s |
92.02 s |
1.01 ❗ |
| mutex_benchmark File Size | 0.89 MB |
0.89 MB |
1.00 ❗ |
| Mutex Stress Test Average Time per Iteration - 1 Threads | 13.38 ns (±0.77 ns) |
13.24 ns (±0.84 ns) |
1.01 |
| Mutex Stress Test Average Time per Iteration - 2 Threads | 14.00 ns (±0.77 ns) |
18.04 ns (±3.62 ns) |
0.78 ❗ |
This comment was automatically generated by workflow using github-action-benchmark.
| //! | ||
| //! ## Network environment variables | ||
| //! | ||
| //! - **`HERMIT_MTU`** — Sets the *maximum transmission unit* (MTU). Defaults to `1514`. |
There was a problem hiding this comment.
We should document that this definition of MTU includes the 14-byte ethernet header, contrary to e.g. Linux where the configured MTU is the IP MTU and excludes the ethernet header
See also the comment here:
Line 50 in a9e28f9
There was a problem hiding this comment.
Alternatively it would probably be more intuitive to match Linux and make the user configure the IP MTU and default to 1500.
cagatay-y
left a comment
There was a problem hiding this comment.
Should this PR also change the README? HERMIT_LOG_LEVEL_FILTER is documented there too. Is it redundant or should they both stay? If both stay, should this one refer to the README for more information?
| //! | ||
| //! ## Deprecated environment variables | ||
| //! | ||
| //! - **`UHYVE_MOUNT`** — Sets the Uhyve mount point. Defaults to `/root`. |
There was a problem hiding this comment.
Is there a preferred alternative for the deprecated variable? Might be useful to mention if there is one.
| //! ## Network environment variables | ||
| //! | ||
| //! - **`HERMIT_MTU`** — Sets the *maximum transmission unit* (MTU). Defaults to `1500`. | ||
| //! - **`HERMIT_MRG_RXBUF_SIZE`** — Sets the receive buffer size. Useful for testing receive buffer merging. Defaults to unset. |
There was a problem hiding this comment.
We should probably clarify that the environment variable is only relevant for virtio-net devices and with a specific feature negotiated.
| //! - **`HERMIT_IP`** — Sets the IPv4 address. Defaults to `10.0.5.3`. | ||
| //! - **`HERMIT_GATEWAY`** — Sets the gateway IPv4 address. Defaults to `10.0.5.1`. |
There was a problem hiding this comment.
Since the DHCPv4 feature is enabled by default, it may be helpful to mention that the IP address set may be overwritten if addresses are successfully negotiated.
Depends on a decision on #2415.