Slashdot Mirror


How Maintainable Is the Firefox Codebase?

An anonymous reader writes "A report released this morning looks at the maintainability level of the Firefox codebase through five measures of architectural complexity. It finds that 11% of files in Firefox are highly interconnected, a value that went up significantly following version 3.0 and that making a change to a randomly selected file can, on average, directly impact eight files and indirectly impact over 1,400 files. All the data is made available and the report comes with an interactive Web-based exploratory tool." The complexity exploration tool is pretty neat.

4 of 127 comments (clear)

  1. So? by ShanghaiBill · · Score: 5, Insightful

    It finds that 11% of files in Firefox are highly interconnected

    Figures like this would be more useful if they were put in context. What is a "normal" level for connectedness? What is the level for the Linux kernel, or for GCC? Compared to other similar sized projects, is 11% good or bad?

  2. Got a trojan warning by dasapfe · · Score: 5, Informative
  3. LibXUL on Win32 approaching 4GB memory limit by revealingheart · · Score: 5, Informative

    According to recent comments (continued on the next day's thread), the win32 compiler that Mozilla use is approaching the 4GB limit, after which LibXUL (which Firefox depends upon) will no longer compile.

    It's currently at 3.5GB, and at the current rate, will reach the limit in approximately 6 months: Chart of memory usage of LibXUL during last 90 days

    While I think that Servo will produce a more decentralised design than Gecko and XUL, the memory limit will be reached well before that. With Windows XP support ending next year, Mozilla should consider migrating to x64 as soon as reasonably possible, keeping x32, but focusing on stripping large and extraneous code above new features.

    1. Re:LibXUL on Win32 approaching 4GB memory limit by HoserHead · · Score: 5, Informative

      I'm a Firefox developer.

      This is slightly inaccurate. We aren't running out of memory to link Firefox, we're running out of memory to run Profile-Guided Optimization (PGO) on Firefox.

      PGO looks at what is actually executed during a given workload and optimizes based on that. It can be a pretty big win — 30% in some workloads —so we work pretty hard to keep it going.

      Unfortunately, PGO needs to have not only all the code, but all the intermediate representations and other metadata about the code in memory at one time. (That's why we're running out of memory.)

      Unfortunately, MSVC doesn't support producing a 32-bit binary using their 64-bit compiler.

      (FWIW, Chrome has *always* been too big to use PGO.)