Comments (3)
Thanks for the report, unfortunately away for a couple of weeks and won't have time to check on this until then, sorry for delay.
from package-benchmark.
Hi @ptoffy,
Yes I believe it is due to running on GitHub's CI infrastructure and "noise neighbours" for the most part.
Can verify locally by creating 3 runs on where development was done:
swift package --disable-sandbox benchmark baseline update run1 --target Signing
swift package --disable-sandbox benchmark baseline update run2 --target Signing
swift package --disable-sandbox benchmark baseline update run3 --target Signing
And comparing them:
swift package benchmark baseline compare run1 run2
swift package benchmark baseline compare run1 run3
swift package benchmark baseline compare run2 run3
The metrics on macOS have less variations than on Linux for me it seems; but they're a lot less than the linked workflow result.
You may find that increasing the number of samples by increasing the test duration will also create more stability:
Benchmark.defaultConfiguration.maxDuration = .seconds(10)
from package-benchmark.
Hi @ptoffy , yeah @vsarunas is correct, running time/throughput measurements on GitHub infrastructure isn't a good proposition (which is why we recommend a standalone runner for such metrics if you want them in CI) - the environment is simply not controlled enough. We are considering adding e.g instruction count also (in #242) which could be a better proposition (if we can get those stats on the runner, remains to be seen..) as it then is a proxy of the runtime in practice. Other metrics such as malloc count and sys calls works fine on GitHub ci though. Closing this for now, feel free to open up follow up issues as needed.
from package-benchmark.
Related Issues (20)
- Different scaling behaviour in 1.14.0 HOT 2
- Specifying parameterized benchmarks and performing parameter sweeps HOT 2
- ratio between two related operations HOT 5
- Seven entries per benchmark per metric in influx. HOT 3
- Benchmark plugin swallows error codes from benchmark crashes HOT 3
- Could not build Objective-C module 'JWTKit' HOT 2
- Improved Docs for iOS Projects? HOT 6
- Error enum values not propagated as exit codes for benchmark comparison in CI. HOT 5
- Differing scaling factors across the same benchmark misrepresented in comaprisons. HOT 3
- Can engineers force memory reporting into one consistent scale unit (K or M)? HOT 2
- Any API for specifying `minIterations` on a benchmark? HOT 2
- Support for memcpy metrics HOT 5
- Add more stats from proc_pid_rusage
- Can `--format markdown` produce legit markdown tables? HOT 14
- Can I pass additional flags when building benchmark? HOT 4
- Make wall clock time and cpu time spent closer HOT 1
- Perform overhead test run and "clean" measurement data
- Allow passing of state between startup/shutdown code and the actual benchmark inside the closure
- Add examples and documentation for regex
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from package-benchmark.