What was the third run? It was one thread with GraalVM?
$ 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