Code Monkey home page Code Monkey logo

Comments (14)

thevirtuoso1973 avatar thevirtuoso1973 commented on May 9, 2024

TODO: once this is done, add comparison of our Modusfile and their template file to the website.

from modus.

thevirtuoso1973 avatar thevirtuoso1973 commented on May 9, 2024

TODO: OpenJDK does not use multi-stage builds, we can use it and some image literal caching perhaps.

from modus.

thevirtuoso1973 avatar thevirtuoso1973 commented on May 9, 2024

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.

thevirtuoso1973 avatar thevirtuoso1973 commented on May 9, 2024

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.

thevirtuoso1973 avatar thevirtuoso1973 commented on May 9, 2024
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.

thevirtuoso1973 avatar thevirtuoso1973 commented on May 9, 2024

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.

thevirtuoso1973 avatar thevirtuoso1973 commented on May 9, 2024

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.

thevirtuoso1973 avatar thevirtuoso1973 commented on May 9, 2024

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.

thevirtuoso1973 avatar thevirtuoso1973 commented on May 9, 2024

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.

micromaomao avatar micromaomao commented on May 9, 2024

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.

thevirtuoso1973 avatar thevirtuoso1973 commented on May 9, 2024

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.

thevirtuoso1973 avatar thevirtuoso1973 commented on May 9, 2024
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.

thevirtuoso1973 avatar thevirtuoso1973 commented on May 9, 2024
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.

thevirtuoso1973 avatar thevirtuoso1973 commented on May 9, 2024

We can open separate issues for the features suggested in #92 (comment) as needed

from modus.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.