Comments (14)
TODO: once this is done, add comparison of our Modusfile and their template file to the website.
from modus.
TODO: OpenJDK does not use multi-stage builds, we can use it and some image literal caching perhaps.
from modus.
Some benchmark results as of 2022-03-06:
official-optimized.log:real 284.66
official-optimized.log:real 292.90
official-optimized.log:real 287.16
official-optimized.log:real 290.12
official-optimized.log:real 293.60
official-optimized.log:real 290.52
official-optimized.log:real 283.06
official-optimized.log:real 292.52
official-optimized.log:real 280.37
official-optimized.log:real 288.61
official-parallel.log:real 290.99
official-parallel.log:real 288.92
official-parallel.log:real 284.59
official-parallel.log:real 284.82
official-parallel.log:real 279.75
official-parallel.log:real 285.73
official-parallel.log:real 275.73
official-parallel.log:real 281.13
official-parallel.log:real 287.10
official-parallel.log:real 286.87
modus-time.log:real 270.88
modus-time.log:real 286.08
modus-time.log:real 268.32
modus-time.log:real 287.62
modus-time.log:real 285.43
modus-time.log:real 285.39
modus-time.log:real 278.22
modus-time.log:real 278.15
modus-time.log:real 277.39
modus-time.log:real 279.19
modus-time.log:real 288.88
official.log:real 668.72
official.log:real 753.39
official.log:real 669.06
official.log:real 675.08
official.log:real 700.04
official.log:real 659.18
official.log:real 660.45
official.log:real 670.69
official.log:real 740.11
official.log:real 668.58
official.log:real 680.71
'optimized' is the rewrite of the official I performed, parallel is the GNU parallel
This was on:
- Modus v0.1.3
- docker-library/openjdk - 4a5f9fe74f5a298a85fafbe73f515eadcf361de8
- modus-continens/modus - 30405fe5333277daf4ac29d3d066247cc7b17c33
- Default
--image-export-concurrency=8
from modus.
As of 2022-03-08:
official-optimized.log:real 293.19
official-optimized.log:real 286.68
official-optimized.log:real 293.13
official-optimized.log:real 282.89
official-optimized.log:real 276.93
official-optimized.log:real 291.97
official-optimized.log:real 293.32
official-optimized.log:real 291.20
official-optimized.log:real 281.89
official-optimized.log:real 294.54
official-parallel.log:real 280.71
official-parallel.log:real 283.69
official-parallel.log:real 277.77
official-parallel.log:real 284.50
official-parallel.log:real 304.98
official-parallel.log:real 282.29
official-parallel.log:real 295.05
official-parallel.log:real 291.61
official-parallel.log:real 280.97
official-parallel.log:real 283.49
official.log:real 672.78
official.log:real 689.08
official.log:real 678.42
official.log:real 697.79
official.log:real 724.59
official.log:real 674.93
official.log:real 692.35
official.log:real 677.01
official.log:real 690.06
official.log:real 689.47
modus-time.log:real 283.80
modus-time.log:real 279.02
modus-time.log:real 272.87
modus-time.log:real 285.49
modus-time.log:real 273.72
modus-time.log:real 284.55
modus-time.log:real 284.34
modus-time.log:real 276.88
modus-time.log:real 266.53
modus-time.log:real 278.63
- Modus v0.1.8
- docker-library/openjdk - 4a5f9fe74f5a298a85fafbe73f515eadcf361de8
- modus-continens/modus - 30405fe5333277daf4ac29d3d066247cc7b17c33
- Default --image-export-concurrency=4
from modus.
official-optimized.log:real 275.50
official-optimized.log:real 299.26
official-optimized.log:real 284.33
official-optimized.log:real 277.26
official-optimized.log:real 331.31
official-optimized.log:real 277.62
official-optimized.log:real 279.52
official-optimized.log:real 295.36
official-optimized.log:real 279.30
official-optimized.log:real 281.47
official-optimized.log:real 286.83
official-optimized.log:real 281.10
official-parallel.log:real 269.97
official-parallel.log:real 263.54
official-parallel.log:real 260.67
official-parallel.log:real 262.42
official-parallel.log:real 265.83
official-parallel.log:real 262.98
official-parallel.log:real 279.83
official-parallel.log:real 258.05
official-parallel.log:real 259.81
official-parallel.log:real 261.39
official-parallel.log:real 262.09
official-parallel.log:real 264.03
official.log:real 899.26
official.log:real 892.54
official.log:real 919.98
official.log:real 968.79
official.log:real 914.04
official.log:real 881.67
official.log:real 886.99
official.log:real 914.85
official.log:real 892.33
official.log:real 905.33
official.log:real 901.99
official.log:real 915.53
official.log:real 900.88
modus-time.log:real 147.70
modus-time.log:real 142.34
modus-time.log:real 142.53
modus-time.log:real 145.44
modus-time.log:real 148.41
modus-time.log:real 146.04
modus-time.log:real 148.83
modus-time.log:real 144.66
modus-time.log:real 144.26
modus-time.log:real 144.12
modus-time.log:real 143.61
modus-time.log:real 147.85
modus-time.log:real 146.42
modus-time.log:real 146.25
- Modus v0.1.9
- docker-library/openjdk - 4a5f9fe74f5a298a85fafbe73f515eadcf361de8
- modus-continens/openjdk-images-case-study - 1ea9d5fa0b31bfb5b4dc90be516b937ffc39465b
--image-export-concurrency=8
from modus.
Image sizes as of 2022-03-10:
8-jdk-oraclelinux7 382926253 382854184
8-jre-slim-bullseye 193357647 194415138
11-jdk-buster 647757951 647788509
8-jre-slim-buster 186173842 187242760
18-jdk-buster 656440884 656472315
19-jdk-slim-buster 410479385 411507475
11-jre-buster 301444373 301468217
18-jdk-bullseye 666649316 666680009
19-jdk-buster 665171379 665202810
19-jdk-oraclelinux7 506028551 505961664
11-jdk-oraclelinux7 516582029 516515440
18-jdk-oraclelinux8 473412684 473422639
17-jdk-oraclelinux7 495062061 494995111
8-jre-buster 267939769 267958997
17-jdk-slim-bullseye 406696720 407733450
11-jre-slim-buster 219678470 220752004
18-jdk-slim-bullseye 408932647 409969377
11-jre-bullseye 306922387 306944880
8-jdk-bullseye 526051001 526074427
17-jdk-bullseye 664413389 664444082
19-jdk-alpine3.15 338151429 332536599
17-jdk-buster 654204957 654236388
18-jdk-oraclelinux7 497298056 497231169
19-jdk-bullseye 675379811 675410504
11-jdk-slim-bullseye 428216463 429280047
11-jdk-oraclelinux8 492696657 492706910
8-jdk-slim-bullseye 294554995 295612486
11-jre-slim-bullseye 226862251 227924358
17-jdk-oraclelinux8 471176689 471186581
8-jre-bullseye 273417783 273435660
19-jdk-alpine3.14 334623104 332547282
11-jdk-bullseye 659712469 659741988
8-jdk-buster 514096051 514120516
19-jdk-slim-bullseye 417663142 418699872
19-jdk-oraclelinux8 482143179 482153134
8-jdk-slim-buster 287370806 288439724
8-jdk-oraclelinux8 359040881 359045654
17-jdk-slim-buster 399512963 400541053
11-jdk-slim-buster 421032706 422107717
18-jdk-slim-buster 401748890 402776980
from modus.
Filesystem diffs using pkgdiff
:
pkgdiff_reports.zip
Although not all of them could be diffed, some took too long and appeared to be frozen (the oraclelinux based images it looks like).
from modus.
I just realized my build script is not using the minimal build context, so the data here #92 (comment) is not accurate, will re-run.
from modus.
As of 2022-03-13:
official-parallel.log:real 117.23
official-parallel.log:real 114.31
official-parallel.log:real 117.88
official-parallel.log:real 121.50
official-parallel.log:real 116.31
official-parallel.log:real 120.31
official-parallel.log:real 116.58
official-parallel.log:real 119.39
official-parallel.log:real 115.95
official-parallel.log:real 118.84
official-parallel.log:real 116.17
official-parallel.log:real 118.69
official-parallel.log:real 117.30
official-parallel.log:real 120.63
official-parallel.log:real 118.76
official-parallel.log:real 116.02
official-parallel.log:real 119.87
official-parallel.log:real 115.55
official-parallel.log:real 119.14
official-parallel.log:real 117.41
official-parallel.log:real 119.76
official-optimized.log:real 272.09
official-optimized.log:real 277.96
official-optimized.log:real 276.30
official-optimized.log:real 274.96
official-optimized.log:real 249.20
official-optimized.log:real 273.37
official-optimized.log:real 266.66
official-optimized.log:real 271.27
official-optimized.log:real 271.91
official-optimized.log:real 280.95
official-optimized.log:real 272.98
official-optimized.log:real 341.39
official-optimized.log:real 271.94
official-optimized.log:real 275.15
official-optimized.log:real 278.10
official-optimized.log:real 272.09
official-optimized.log:real 274.43
official-optimized.log:real 273.75
official-optimized.log:real 273.81
official-optimized.log:real 278.37
official-optimized.log:real 271.48
official.log:real 509.87
official.log:real 521.59
official.log:real 529.64
official.log:real 511.76
official.log:real 549.43
official.log:real 509.40
official.log:real 547.13
official.log:real 529.70
official.log:real 525.82
official.log:real 556.19
official.log:real 503.72
official.log:real 508.85
official.log:real 517.48
official.log:real 547.71
official.log:real 515.92
official.log:real 508.42
official.log:real 508.21
modus-time.log:real 143.48
modus-time.log:real 139.21
modus-time.log:real 140.36
modus-time.log:real 137.80
modus-time.log:real 137.10
modus-time.log:real 139.19
modus-time.log:real 140.07
modus-time.log:real 140.43
modus-time.log:real 137.43
modus-time.log:real 137.52
modus-time.log:real 138.14
modus-time.log:real 140.07
modus-time.log:real 138.42
modus-time.log:real 141.17
modus-time.log:real 140.13
modus-time.log:real 141.14
modus-time.log:real 138.64
modus-time.log:real 138.87
modus-time.log:real 138.42
modus-time.log:real 142.46
modus-time.log:real 138.00
modus-time.log:real 138.23
modus-time.log:real 136.10
modus-time.log:real 136.39
modus-time.log:real 139.11
modus-time.log:real 136.85
modus-time.log:real 138.56
modus-time.log:real 134.82
modus-time.log:real 139.36
modus-time.log:real 133.98
modus-time.log:real 135.01
exporting_total.txt 18.61924
exporting_total.txt 18.446434
exporting_total.txt 18.847692
exporting_total.txt 17.860722
exporting_total.txt 18.089413
exporting_total.txt 17.739147
exporting_total.txt 17.841637
exporting_total.txt 17.93165
exporting_total.txt 17.894924
exporting_total.txt 18.104797
exporting_total.txt 18.716381
exporting_total.txt 17.791441
exporting_total.txt 18.641373
exporting_total.txt 18.192183
exporting_total.txt 18.396765
exporting_total.txt 18.164433
exporting_total.txt 18.066969
exporting_total.txt 17.74961
exporting_total.txt 17.483534
exporting_total.txt 18.162588
- Modus v0.1.10
- docker-library/openjdk - 76633a8f235476207b7ce7534826236e1ced626a
- modus-continens/openjdk-images-case-study - fe109f7a2e173aae43b880548f818aeaea261473
--image-export-concurrency=8
--image-resolve-concurrency=8
from modus.
Why --image-resolve-concurrency=8
? I don't think resolving image is CPU intensive work, and when I bump that number too high failure rate shoots up significantly.
from modus.
Why
--image-resolve-concurrency=8
? I don't think resolving image is CPU intensive work, and when I bump that number too high failure rate shoots up significantly.
It seemed to go mildly faster, and my failure rate doesn't seem affected at all because of the local registry I use. (Actually, it basically has never failed since I set up the local registry.)
from modus.
official-parallel.log:real 117.94
official-parallel.log:real 115.70
official-parallel.log:real 122.02
official-parallel.log:real 119.20
official-parallel.log:real 119.69
official-parallel.log:real 121.18
official-parallel.log:real 116.72
official-parallel.log:real 124.84
official-parallel.log:real 118.00
official-parallel.log:real 122.50
official-optimized.log:real 279.50
official-optimized.log:real 267.77
official-optimized.log:real 271.48
official-optimized.log:real 271.46
official-optimized.log:real 275.36
official-optimized.log:real 289.75
official-optimized.log:real 279.34
official-optimized.log:real 282.79
official-optimized.log:real 272.79
official-optimized.log:real 276.62
official.log:real 512.80
official.log:real 512.59
official.log:real 521.78
official.log:real 530.38
official.log:real 502.50
official.log:real 512.58
official.log:real 517.55
official.log:real 511.72
official.log:real 524.09
official.log:real 517.06
modus-time.log:real 142.35
modus-time.log:real 142.70
modus-time.log:real 144.98
modus-time.log:real 142.63
modus-time.log:real 145.00
modus-time.log:real 142.22
modus-time.log:real 143.35
modus-time.log:real 142.01
modus-time.log:real 142.25
modus-time.log:real 143.94
exporting 17.931551
exporting 18.363346
exporting 18.260519
exporting 18.238321
exporting 17.906158
exporting 17.574697
exporting 17.863113
exporting 18.498503
exporting 17.818579
exporting 17.971857
- Modus v0.1.11
- docker-library/openjdk - 76633a8f235476207b7ce7534826236e1ced626a
- modus-continens/openjdk-images-case-study - fe109f7a2e173aae43b880548f818aeaea261473
- Default modus flags
from modus.
ubuntu@ip-172-31-36-203:~$ cat benchmarks/concat_benches.txt | openjdk-images-case-study/benchmark-scripts/stats.py
official-parallel.log:real
Sample mean: 119.779
Sample standard deviation: 2.8458173986864774
Interval: (117.74322487076964, 121.81477512923036)
official-optimized.log:real
Sample mean: 276.68600000000004
Sample standard deviation: 6.444112213658469
Interval: (272.0761598252261, 281.29584017477396)
official.log:real
Sample mean: 516.305
Sample standard deviation: 7.7629436713430024
Interval: (510.7517246341839, 521.858275365816)
modus-time.log:real
Sample mean: 143.143
Sample standard deviation: 1.13148918588636
Interval: (142.33358139686553, 143.95241860313448)
exporting
Sample mean: 18.0426644
Sample standard deviation: 0.2855419762265745
Interval: (17.838399975366976, 18.246928824633024)
from modus.
We can open separate issues for the features suggested in #92 (comment) as needed
from modus.
Related Issues (20)
- Misleading error message `expected ")"` HOT 1
- `run(...)` and `(copy(...))::merge` fails on scratch image
- Invalid operator usage does not result in proper error messages HOT 1
- Better Analysis in recursive cases HOT 2
- Stratified construction
- Array Types (v1) HOT 4
- Fix hard-coded scratch image spec
- Better error messages for malformed goals
- Better Proof Highlighting HOT 2
- Proposal: Allow copying multiple files to the same destination via `(::)copy([...], dest)` HOT 3
- Types HOT 1
- `modus run`, `modus ls`, etc
- Format strings in negated expressions HOT 1
- string_concat -> f-string reversal HOT 1
- Layer expression that creates no layers HOT 5
- Should mention in the README.md to download protoc for M1
- Outdated comment
- Print a warning when there multiple minimal proofs
- Who's behind this project ? HOT 4
- SLD Resolution? HOT 2
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 modus.