Le mer. 7 avr. 2021 à 19:32, Tibor Digana <tibordig...@apache.org> a écrit :

> What was the third run? It was one thread with GraalVM?
>

2nd run with mvnd (i skipped the first one since normally you start it once
for you work day)

mvnd client is a graalvm binary but that is a detail since it runs in a jvm
an actual maven build as mvn script does

as mentionned, you will not get a graalvm binary of maven as of today
without loosing all maven features (or doing a hardcoded maven lifecycle
which is unintended)

to be concrete you have:

1. default mvn build
2. standard maven build with concurrency as in mvnd defaults
3. run on a "hot"/ready mvnd instance (~= already running maven)

to present it differently, mvnd is close to what itellij can do with its
remote maven runner, just a bit more optimized and not tied to an IDE


> $ time mvnd install -DskipTests -Dinvoker.skip=true
> real 0m11,295s
> user 0m0,354s
> sys 0m0,176s
>
> On Wed, Apr 7, 2021 at 7:09 PM Romain Manni-Bucau <rmannibu...@gmail.com>
> wrote:
>
> > Le mer. 7 avr. 2021 à 17:08, Tibor Digana <tibordig...@apache.org> a
> > écrit :
> >
> > > Romain, our builds are always downloading the artifacts.
> > > The I/O cannot be 0 time. We invest in safety builds rather than
> > > performance and so we rather download fresh artifacts.
> > > Other teams may cach the artifacts which may not be always so safe -
> > other
> > > preferences.
> > >
> >
> > Got it, note that redownloading a release is normally wrong and caching a
> > snapshot is also but this is your policy and a docker solution will not
> > solve that since you will need to update the docker base image as often
> as
> > you want updates (likely daily for snapshot) or still use snapshots so at
> > the end docker is not what helps *for this factor*.
> >
> >
> > >
> > > If you think that the Cache or AppCDS or GraalVM would have an effect,
> > feel
> > > free to make a prototype and try to measure the performance.
> > > Publish the benchmark test result and we will see how big percentage
> > > improvement it would be in categories (asciidoc, normal build, specific
> > > builds, whatever...)
> > >
> >
> > We already discussed it multiple times but graalvm boost or cds boost can
> > be siginificative but without rewriting *all* maven design gain is 0
> (both
> > only work with a flat classpath - even a bit more constraints) so it
> means
> > no more isolated plugins, no more plexus-classworld etc, not sure we want
> > to do that anytime soon since it is a big feature of maven.
> >
> >
> > >
> > > As I can see the following article, such a benchmark test can be made
> in
> > a
> > > spare time:
> > >
> > >
> >
> https://medium.com/@toparvion/appcds-for-spring-boot-applications-first-contact-6216db6a4194
> >
> >
> > Figures already had been shared on the list and it is not rare to have
> > around 30% boost on real life projects.
> > If you want something closer, maven-surefire figures are:
> >
> > $ time mvn install -DskipTests -Dinvoker.skip=true
> > real 0m29,606s
> > user 2m10,142s
> > sys 0m3,160s
> >
> > $ time mvn install -DskipTests -Dinvoker.skip=true -T15 # I have 16 core,
> > just to match mvnd defaults
> > real 0m19,494s
> > user 2m47,651s
> > sys 0m4,098s
> >
> > $ time mvnd install -DskipTests -Dinvoker.skip=true
> > real 0m11,295s
> > user 0m0,354s
> > sys 0m0,176s
> >
> >
> > 42% faster (I skipped tests to only include project pipeline but it is
> the
> > kind of boost the caching + long running daemon provides you)
> >
> >
> >
> > >
> > >
> > >
> > > Cheers
> > > T
> > >
> > >
> > > On Wed, Apr 7, 2021 at 3:52 PM Romain Manni-Bucau <
> rmannibu...@gmail.com
> > >
> > > wrote:
> > >
> > > > Hi Tibor,
> > > >
> > > > I see what you mean but I think this topic is actually unrelated to
> IO
> > > > since this remote latency is actually 0 in the case we are discussing
> > and
> > > > this case is generally solved by caching on all CI (jenkins, gh
> > actions,
> > > > travis for the ones I can speak about out of my head) - and locally
> by
> > > your
> > > > local m2 as you mentionned.
> > > > So overall the download time is always skipped in this daemon topic
> > since
> > > > it is a pay once cost that devs rarely face.
> > > >
> > > > What we care about is to a have sane defaults and the capacity to
> stop
> > > > creating and recreating ClassRealm with potentially slow init in
> these
> > > > realms (use asciidoctor to see something slow to create ;)).
> > > > A daemon enables to add a ton of caches which save a lot of time in
> > > > practise when rebuilding the same project.
> > > > Indeed part of these enhancements can be backported to maven core -
> and
> > > > thanks mvnd team to have done part of it - but not all of them since
> by
> > > > design the biggest slow part of a JVM is the classloading (it is one
> > part
> > > > GraalVM speeds up a lot by bypassing it), in particular with plexus
> > > > classrealm hierarchy and impl.
> > > > At least this feature can justify a daemon for me but also having an
> in
> > > > memory cache to not resolving and resolving is the second big feature
> > > maven
> > > > benefits a lot from what I saw (it is crazy how we loose time there).
> > > > Indeed, as soon as instances can be reused plugins could cache more
> > > without
> > > > breaking the "not daemon" cache and provide way more boosts but
> current
> > > > behavior is already impressive (I expected the boost to be important
> > but
> > > > less when I started the thread 4 years ago to be honest).
> > > >
> > > > Le mer. 7 avr. 2021 à 15:40, Tibor Digana <tibordig...@apache.org> a
> > > > écrit :
> > > >
> > > > > I think two years ago we were talking about Maven dockerization.
> > > > > We had the work in progress and I think I will be able to find it
> > > again.
> > > > > The Docker image included local repo.
> > > > > I think the biggest latencies are when you are downloading
> artifacts.
> > > >
> > > > Of course, you have one local repo, but that's suitable for those CI
> > > > > systems which do not want to override the local repo or share the
> > > > artifacts
> > > > > with other projects. It is our case in Apache.
> > > > >
> > > > > T
> > > > >
> > > > > On Wed, Apr 7, 2021 at 8:34 AM Guillaume Nodet <gno...@apache.org>
> > > > wrote:
> > > > >
> > > > > > Fwiw, Peter and I would be happy to donate mvnd to the Apache
> Maven
> > > > > > project, should you choose to accept it.
> > > > > >
> > > > > > Cheers,
> > > > > > Guillaume
> > > > > >
> > > > > > Le lun. 29 mars 2021 à 12:21, Romain Manni-Bucau <
> > > > rmannibu...@gmail.com>
> > > > > a
> > > > > > écrit :
> > > > > >
> > > > > > > Up 4 years later ;)
> > > > > > >
> > > > > > > Now mvnd exists and proves it is very interesting to have such
> a
> > > > > feature,
> > > > > > > should it be something which can fit maven standard delivery?
> > > > > > > If overall yes we can start by asking mvnd if it can be
> > contributed
> > > > > with
> > > > > > > main codebase and if not we can either decide to do our own
> (hope
> > > not
> > > > > ;))
> > > > > > > or that maven does not care about caching/optimizations in its
> > > "core"
> > > > > and
> > > > > > > that it is only done in extensions (I know 3 "main" ones as of
> > > > today).
> > > > > > >
> > > > > > > Wdyt?
> > > > > > >
> > > > > > > Romain Manni-Bucau
> > > > > > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > > > > > <https://rmannibucau.metawerx.net/> | Old Blog
> > > > > > > <http://rmannibucau.wordpress.com> | Github <
> > > > > > > https://github.com/rmannibucau> |
> > > > > > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > > > > > > <
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Le mer. 9 mars 2016 à 23:58, Jeff Jensen <
> > > > > > > jeffjen...@upstairstechnology.com>
> > > > > > > a écrit :
> > > > > > >
> > > > > > > > Thanks!  It's running just fine.  :-)  It's very cool.
> Really
> > > nice
> > > > > > > > directory traversal and completion, colors, and
> > > commands/features I
> > > > > > don't
> > > > > > > > know yet!
> > > > > > > >
> > > > > > > > Very interesting timing diffs (for each casual test, I ran
> the
> > > > > command
> > > > > > > for
> > > > > > > > each multiple times to seed infra caches):
> > > > > > > >  * on some asciidoc gen with "mvn generate-resources", it was
> > > about
> > > > > the
> > > > > > > > same duration as CLI but after running each about 10 times,
> > > > mvnshell
> > > > > > > saved
> > > > > > > > about 20% consistently (possibly due to JIT? besides
> directory
> > > > > > traversal,
> > > > > > > > this was the first things I did).  This was my key use case
> for
> > > > > > wanting a
> > > > > > > > "mvn server" - handling situations like this with repeated
> runs
> > > > > > > (asciidoc,
> > > > > > > > site, etc.).
> > > > > > > >
> > > > > > > >  * on a simple "mvn clean", mvnshell was about 2x faster than
> > > CLI.
> > > > > > > >
> > > > > > > >  * on a small module build, "mvn install" was about 20%
> faster
> > > over
> > > > > CLI
> > > > > > > > (after a mvn clean for each).
> > > > > > > >
> > > > > > > > I look forward to trying more things.
> > > > > > > >
> > > > > > > > Nice to have, thank you Jason!
> > > > > > > >
> > > > > > > >
> > > > > > > > On Wed, Mar 9, 2016 at 4:17 PM, Jason Dillon <
> > > > jason.dil...@gmail.com
> > > > > >
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > > > Jason, if you have a built version, do you mind adding it
> as
> > a
> > > > > > download
> > > > > > > > to
> > > > > > > > >
> > > > > > > > > the release files?
> > > > > > > > >
> > > > > > > > > I can make a binary of this, though I do plan on fixing it
> up
> > > so
> > > > > that
> > > > > > > > > folks can build it in the near future.
> > > > > > > > >
> > > > > > > > > Build up here for the moment:
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://www.dropbox.com/sh/yvt1g43r2pr2scj/AADqM__VhJaFf_x57OiUEZXva?dl=0
> > > > > > > > >
> > > > > > > > > gshell:master should be buildable with just central now,
> > > dangling
> > > > > ref
> > > > > > > to
> > > > > > > > > older version of jline for classifer=tests which was unused
> > and
> > > > > > > polluting
> > > > > > > > > the build dependencies.
> > > > > > > > >
> > > > > > > > > —jason
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > ------------------------
> > > > > > Guillaume Nodet
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to