From MozillaWiki
Jump to: navigation, search

15th April 2008


  • Adobe: Ed, Jennifer, Scott, Rick, Steven
  • Mozilla: Graydon, Brendan
  • Intel: Moh, Shengnan, Karthik

Action Items

  • ACTION: Assign someone to create a patch for flag in AVM core
  • ACTION: Jim from Mozilla to work with Moh on strings

Previous Action Items

  • ACTION: Benjamin needs tom to review bug 423692
  • ACTION: Edwin: raise the priority of fixing string implementation -- The TT string optimization bug is https://bugzilla.mozilla.org/show_bug.cgi?id=411163 DONE
  • ACTION: Graydon: Per "callgrind" (call-graph profiler derived from "valgrind") - as hotspots are found, log bugs for them with profile data



  • Working on performance opportunities w/ tracing. Have prototyped a routine for fast scanning of memory and skipping large blocks of zeros. This routine seems particularly useful for TT's ZCT::PinStackObjects hot loop on a number of benchmarks
    • Is there any plan for major changes w/ garbage collection, etc., that would make these new changes irrelevant?
      • Ed says that Garbage collector is stable and they will continue to want to look into this (could go into central as well)
  • A similar, but slightly different, pattern in the hot loop of _pcre_valid_utf8 also benefits from this optimization and results in 15% to 25% performance gain in Sunspider/string-unpack-code
  • No person is yet assigned to strings, but Adobe/Mozilla will want to coordinate with Moh on this
    • Jim from Mozilla will be working on this when he is back.
  • CPUID Instruction: Need a flag in AVM core: Ed thinks we should just create a patch and do it. No one is assigned to this yet.


  • ABC->Forth generation @runtime, preliminary #s. Ed is working on change to tracking, working on Forth codebase. Interpreter of ABC’s are compiled into IL. This gives us a place to put static optimizations. Thus, the interpreter runs faster as is only keeping track of one location and are optimizing the code before interpreting it.
    • Because of this, is working on code for managing the IL cache. It’s a change in body plan for tamarin tracing
    • Creates no real change to Forth language and is focused on single pass