Hi Till,

Thank you for being interested!

That add-on is a front-end for WebIDE and is designed to be used on Firefox OS temporarily. However, the back-end is developed in gecko and you may control the profiler in web console:
https://bugzilla.mozilla.org/show_bug.cgi?id=1059139#c16

Please note that this is a prototype and the patches are not landed yet, so a customary build of gecko with the patches is needed:
https://bugzilla.mozilla.org/show_bug.cgi?id=1059139#c15

Please let me know if any problems. I'm very happy if this is useful to you!

Best regards,
Ting-Yuan Huang


On 12/11/2014 08:55 PM, Till Schneidereit wrote:
Hi Ting-Yuan Huang,

that looks very interesting and I'd very much like to try using it on Shumway. However, cloning the repo, running make and installing the resulting XPI only results in a preference being added to the devtools preferences pane. No panel for the profiler shows up. Is there some additional step I'm missing to get this working?


thanks,
till

On Thu, Dec 11, 2014 at 9:22 AM, Ting-Yuan Huang <[email protected] <mailto:[email protected]>> wrote:

    Hi Nicholas,

    It seems that we have a similar goal :-) We have been prototyping
    yet another memory profiler focusing on how objects are allocated:

    https://wiki.mozilla.org/MemoryProfiler
    (Well, the name is so general because I'm bad at naming. I'll
    rename it if anyone feel that's improper.)

    It is inspired by hprof and DMD and is designed to identify memory
    eager codes directly. For example, it can show which (JS/C/C++)
    functions retaining most:

       SelfSize   TotalSize  Name
        4653056     9502720  p/this.start
    
(https://marketplace.cdn.mozilla.net/media/fireplace/js/include.js?b=1412710964149:8)
        1310720     2097152  a
    
(https://marketplace.cdn.mozilla.net/media/fireplace/js/include.js?b=1412710964149:11)
        1245184     1245184  nsJSContext::GarbageCollectNow
        1179648     1179648  PresShell::DoReflow
         983040      983040  nsCycleCollector::collectSlice
         983040      983040 IPDL::PHttpChannel::RecvOnTransportAndData
         851968      851968  t/t.prototype._create
    
(https://marketplace.cdn.mozilla.net/media/fireplace/js/include.js?b=1412710964149:12)

    or having highest peaks:

        SelfHWM    TotalHWM  Name
        6225920    17563648  p/this.start
    
(https://marketplace.cdn.mozilla.net/media/fireplace/js/include.js?b=1412710964149:8)
        6029312     6029312  s
    
(https://marketplace.cdn.mozilla.net/media/fireplace/js/include.js?b=1412710964149:11)
        4784128     4849664  nsDisplayBoxShadowOuter::Paint
        1966080     1966080 IPDL::PHttpChannel::RecvOnTransportAndData
        1769472     6684672  a
    
(https://marketplace.cdn.mozilla.net/media/fireplace/js/include.js?b=1412710964149:11)
        1572864    18153472  u
    
(https://marketplace.cdn.mozilla.net/media/fireplace/js/include.js?b=1412710964149:8)
        1572864     1572864  nsJSContext::GarbageCollectNow
        1507328     1507328  PresShell::DoReflow
        1507328    13500416  p/<.run/x/<
    
(https://marketplace.cdn.mozilla.net/media/fireplace/js/include.js?b=1412710964149:8)

    Other features include a timeline like that in Cleopatra so that
    developers can zoom in and zoom out to focus on certain time
    intervals, a tree view to show the call hierarchy and a filter to
    allow users to concentrate on what interest them. We planed to
    annotate allocation kinds (images, strings, js objects, etc) later.

    The profiler is sampling based because the allocation events are
    enormous. Both GC heaps, including nursery and tenured, and native
    heaps are sampled. The sampler generates a lot of allocation and
    free events. A few tables are kept and garbage collected so that
    free events can be determined. Combining allocation with free
    events, the peak usage of all functions/methods can be calculated,
    which is useful when looking into the memory footprint of
    application start-up.

    I discussed with :jimb and :fitzgen in the work week and they gave
    me many great suggestions. Currently we are trying to retarget the
    profiler to debugger APIs.

    Hope this is useful and interest you.It would be great if we can
    share the work and cooperate on it.

    Best regards,
    Ting-Yuan Huang

    _______________________________________________
    dev-tech-js-engine-internals mailing list
    [email protected]
    <mailto:[email protected]>
    https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals



_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals

Reply via email to