Re: PECL account for publishing an extension

From: Date: Thu, 10 Jul 2014 09:17:52 +0000
Subject: Re: PECL account for publishing an extension
References: 1 2 3 4  Groups: php.pecl.dev 
Request: Send a blank email to pecl-dev+get-12013@lists.php.net to get a copy of this message
On Sat, Jun 22, 2013 at 3:42 PM, Constantin-Emil MARINA < dinu.marina@exteon.ro> wrote: > Hi all, Johannes, > > This is a new try to send the reply to the mailing lists. Tried again a few > weeks ago, the message just disappeared. > During this time we manage to publish the V2 and update documentation, > still at http://www.exteon.ro/en/products/php-tools/web3tracer > > > 1) Can you describe the difference over xhprof? Why do we need a fork > instead of taking it over and improving it? This might ensure most users > get > the best experience y not having to select between competing choices ... > > I will start with a little background: the main concern, when we started > the fork, was properly dealing with recursion. Here are 2 call graphs > produced by XHProf and web3tracer for the same script to explain what we > mean by "properly": > http://www.exteon.ro/web3tracer/xhprof.jpg > http://www.exteon.ro/web3tracer/web3tracer.jpg > > Our other concern was having lowest per-call overhead possible. Recursion > is an unavoidable reality in OOP (in the form of recursive getters for > instance) or in MVC framework s (where view templates are usually expanded > in a recursive cycle). Overhead is a concern manly in OOP setters and > getters, which get a huge number of calls but are very lightweight (eg. > return $this->prop). > > I found XHProf a good starting base. However, XHProf is designed (out of > different but nonetheless valid concerns, I'm sure), for small memory > footprint. Therefore every call is fully processed and aggregated on each > call. When we added the recursion processing on this model, the overhead > became unreasonable. Instead, we decided to do it differently: just store > the call tree in a simple stack structure on every call and do the whole > post-processing on trace end. We allocate more memory, that is also mlocked > (if available) for performance and just store the raw data during the > run.This means better performance, accurate recursion processing, albeit > with a larger memory footprint. The PHP equivalent of the recursion logic > can be seen here (a much easier read than C code): > http://www.exteon.ro/en/products/php-tools/xt2callgrind/ > > This also means we actually replaced the whole business login in XHProf, > leaving only the meta (Zend declarations, hooks etc) and timing functions.. > It's a different design that we cannot achieve by incrementally building on > top of XHProf, except maybe building a 2-headed dragon (something like, a > xhprof-mode switch that goes back to the old xhprof codebase). I'm not sure > how we would maintain the two-headed beast or even if it's an idea to > discuss, seems awkward to me. > > However, V2 does produce XHProf-compatible output out of the box, with the > exception that we don't implement the sampling mode in XHProf, as we have > yet to find some use for it in our projects. Also we implement a different > memory delta logic to prevent the XHProf negative totals and >100% deltas.. > > With some leeway, some may consider it an "improved" XHProf. However, since > the design is different, I don't see it as an incremental transition from > XHProf; rather it would make more sense that the 2 coexist and let the > community make the transition, if it proves to be indeed an improvement. I > would also not call web3tracer "stable" at this point; it is stable for us, > but it could benefit by more testing from the users. > > When I composed the previous mail, I was about to call XHProf > "unmaintained", but since then I see a new version was pushed. So I could > also not impose on "taking it over". I would highly value any feedback from > XHProf maintainer Bill Fumerola (kudos!) on the matter. > > > 2) We prefer BSD/Apache/MIT-style licenses. Keeping similar licenses > means we can collaborate in the PHP space. You have chosen LGPL which > essentially means you can profit from developments in other extensions > (i.e. > take code from xhprof or xdebug) while those can't benefit from your work.. > I > understand the interest of keeping the code open but from my years in this > community I see more trouble from companies keeping there improvements in > house (where [L]GPL won't help) than from commercializing by third parties. > (what [L}GPL essentially prevents) > > We have no strong feelings in this matter, we released the V2 under the > initial XHPof Apache license. > > Thanks, > Dinu > > > -- > PECL development discussion Mailing List (http://pecl.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > Hi Johannes, Are your concerns resolved with the last reply (and with the release of V2)? I think this would be a great addition to pecl. -- Ferenc Kovács @Tyr43l - http://tyrael.hu

« previous php.pecl.dev (#12013) next »