John, Fritz,

Yes exactly - I was talking about profiling QxCompiler itself. At that
moment I was experimenting with shared database and was wondering why
it doesn't bring any speedup. I thought profiling would help to
understand where QxCompiler spends most time; later it turned to be
more fundamental issue.

I've experimented with a bit with incremental builds in our CI. So far,
I think incremental builds are fine for CI builds (triggered by
commits). That build directory isn't cleared each time didn't cause any
complications yet. It's not a problem that first build takes
significant time, it's only time of subsequent builds that matters.
It's also a good practice to perform clean builds for releases, but
slow release builds are quite acceptable since they don't occur
frequently.

However, I don't think efficient shared cache is impossible "by
design". I've looked into {qxt,myproject}/{source,build}-
output/transpiled/qx/*, did a byte-by-byte comparison and found that
*.js files are identical (therefore, they could probably be cached
across targets and libraries). Of course, there was difference in which
files were present, due to different dependencies.

(Besides, all the *.map files contain "null", are they really needed?)

Speaking of dependencies, I did some comparison between qxt and our
project:

Framework classes used: 283 vs. 378
Contribs: UploadMgr (both)
Uncompressed script: 4.8M vs. 6.4M
Compressed script (QxCompiler): 1.4M vs. 1.9M
Compressed script (generate.py): 700K vs. 1M

Definitely there is some room for optimization :)

John, sorry for delay in conversation. I'll be answering you on server-
side JS soon.

Dimitri

> Hi Fritz
>  
> In that case that's easy ;) because there's no profiling info in
> QxCompiler at the moment, although I do keep an eye on overall
> compilation time; the two main costs are transpiling, because every
> source file in every library has to be transpiled, and the other is
> copying resources for the build target.  
>  
> It can be difficult to gauge timings without isolating parts of the
> app, although my guess is that a lot of this is probably file I/O;
> the actual Babel transpilation process is a notable exception in that
> it's completely synchronous and completely CPU bound
>  
> Initially, I wanted to keep the transpiled code local to each library
> but that isn't possible because some targets affect the output of the
> transpile stage, but that just means that it has to be cached by
> target rather than by library.
>  
> There's always room for improvement but overall I think it's quite
> fast given the work that it's doing, and the incremental compile for
> source targets is around 800ms on my laptop, but build target needs a
> bit of a once over because it around 6secs and it should be a lot
> faster if nothing's changed.
>  
> Cheers
> John
>  
>  
> From: "Fritz Zaucker" <zauc...@oetiker.ch>
> Sent: Friday, February 19, 2016 8:42 AM
> To: "qooxdoo Development" <qooxdoo-devel@lists.sourceforge.net>
> Subject: Re: [qooxdoo-devel] QxCompiler - add ES6, faster
> compilation, and 100% Javascript API to building applications
>  
> Hi John,
> 
> I understood it as a means to profile QxCompiler. But even if Dimitri
> had
> something else in mind, it probably would be useful to know where
> QxCompiler
> spends most of it's time in order to focus on optimizing at the right
> place.
> 
> BWT, I am looking forward to trying QxCompiler myself, just didn't
> get
> around to it yet.
> 
> Cheers,
> Fritz
> 
> On Fri, 19 Feb 2016, John Spackman wrote:
> 
> > BTW I missed you comment on this earlier - by profiling, do you
> mean of
> > the compilation process or injecting profiling statements into the
> > generated code?
> >
> > On 18/02/2016, 17:51, "Dimitri" <mi...@cargosoft.ru> wrote:
> >
> >> I'm not a Node.js pro (I'm a JavaEE architect in fact :) so I'm
> not
> >> experienced in profiling Node applications. It would be nice if
> some
> >> verbose output (with timings) was produced by QxCompiler, as a
> poor
> >> man's profiling facility :)
> >
> >
> >
> > -----------------------------------------------------------------
> -------------
> > Site24x7 APM Insight: Get Deep Visibility into Application
> Performance
> > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> > Monitor end-to-end web transactions and take corrective actions now
> > Troubleshoot faster and improve end-user experience. Signup Now!
> > http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
> > _______________________________________________
> > qooxdoo-devel mailing list
> > qooxdoo-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
> 
> --
> Oetiker+Partner AG tel: +41 62 775 9903 (direct)
> Fritz Zaucker +41 62 775 9900 (switch board)
> Aarweg 15 +41 79 675 0630 (mobile)
> CH-4600 Olten fax: +41 62 775 9905
> Schweiz web: www.oetiker.ch
> 
> -------------------------------------------------------------------
> -----------
> Site24x7 APM Insight: Get Deep Visibility into Application
> Performance
> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> Monitor end-to-end web transactions and take corrective actions now
> Troubleshoot faster and improve end-user experience. Signup Now!
> http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
> _______________________________________________
> qooxdoo-devel mailing list
> qooxdoo-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>  
>  ------------------------------------------------------------------
> ------------
> Site24x7 APM Insight: Get Deep Visibility into Application
> Performance
> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> Monitor end-to-end web transactions and take corrective actions now
> Troubleshoot faster and improve end-user experience. Signup Now!
> http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
> _______________________________________________
> qooxdoo-devel mailing list
> qooxdoo-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to