On 12/20/2013 06:24 AM, Julien Wajsberg wrote:
> Hey !
> 
> I apologize for the cross post, I do this because I think this mail is
> useful for both teams.
> 
> 2013 has been a great year for the developer tools. As a regular user of
> Firebug and now of the Developer tools, I can see the tremendous
> improvements that happened this year.
> 
> Now is a great time to write a wishlist for 2014. This is only a
> developer's wishlist, nothing more.
> 
> In 2013 we've mainly seen improvement in the Devtools itself. Now in
> 2014 it should be the year where Devtools engineers gets to talk with
> other team's engineers (that's why I CC the js engine folks as well). I
> know this is already happening, but maybe not enough?
> 
> So here is my wishlist (please cope with any inacuraccies I could make):
> * have diagnostics about what happens within the JS engine:
>   + when and why objects are handled as Hashmap instead of Structs (why
> === which JS code is producing this)
>   + when and why functions are deoptimized
> 
> * have diagnostics about what happens in the memory and other GC-related
> stuff
>   + know when a GC happens (see below for the Profiler)
>   + have a tool that shows the memory consumption over time (à la
> jconsole, cf [1], or visualvm [2])

I'm also sad that we haven't gotten something like this hooked up yet.
For now I'd recommend the excellent extension memchaser[1]. If you need
more detail you can turn on javascript.options.mem.log in about:config
and look at individual GC's in your browser console.

1 - https://addons.mozilla.org/en-US/firefox/addon/memchaser/

>   + have a tool that shows the various memory generations in a runtime
> way (à la visualGC [3])

At the moment the generation is "tenured." Once we turn on generational
GC we can easily get that data though, so it should be doable.

>   + (you can see I did some Java in the past ;) )
>   + best of the best: show the JS locations where the most object
> creations and deletions happen
>
> * Have a web developer-friendly profiler
>   + show the main events happening while a webpage is rendering: css
> refresh styles, reflow, repaint
>   + ideally we should also see _why_ these events are happening, tracing
> back to a JS line
>   + show when a GC happens, show also why this happens if possible and
> if it makes sense
> 
> [1]
> http://docs.oracle.com/javase/7/docs/technotes/guides/management/figures/memtab.gif
> [2] http://www.cubrid.org/files/attach/images/220547/126/316/visual-vm.png
> [3]
> http://www.cubrid.org/files/attach/images/220547/126/316/visual-gc-execution.png
> 
> I can file bugs for all this if they don't already exist, but what I'd
> like is to have someone from your team that will make (part of) my
> dreams happen.
> 
> The bottom line is: we probably have smaller teams than our competitors,
> and that's exactly why we can be better: we can easily talk to each
> other, we can be more agile.
> 
> Thanks for reading, have a great party for the end of year! 2014 will be
> a great year.
> 
> 
> 
> _______________________________________________
> dev-tech-js-engine-internals mailing list
> [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