mozilla / perf-automation
Source Code Overview

Analysis scope, overview of main, test, generated, deployment, build, and other code.

Source Code Analysis Scope
Files includes and excluded from analyses
npmignore
txt
mjs
jshintrc
coffee
editorconfig
eslintignore
pub
babelrc
ls
patch
jscsrc
nix
in
el
gitattributes
prettierignore
Overview of Analyzed Files
Basic stats on analyzed files
Intro
For analysis purposes we separate files in scope into several categories: main, test, generated, deployment and build, and other.

  • The main category contains all manually created source code files that are being used in the production.
  • Files in the main category are used as input for other analyses: logical decomposition, concerns, duplication, file size, unit size, and conditional complexity.
  • Test source code files are used only for testing of the product. These files are normally not deployed to production.
  • Build and deployment source code files are used to configure or support build and deployment process.
  • Generated source code files are automatically generated files that have not been manually changed after generation.
  • While a source code folder may contain a number of files, we are primarily interested in the source code files that are being written and maintained by developers.
  • Files containing binaries, documentation, or third-party libraries, for instance, are excluded from analysis. The exception are third-party libraries that have been changed by developers.

main125768 LOC (79%) 471 files
test97 LOC (<1%) 4 files
generated18573 LOC (11%) 6 files
build and deployment141 LOC (<1%) 3 files
other13765 LOC (8%) 13 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 471 files match defined criteria (125,768 LOC, 100.0% vs. main code):
    • 346 *.js files (91,333 LOC)
    • 53 *.c files (18,296 LOC)
    • 4 *.asm files (6,009 LOC)
    • 27 *.h files (5,737 LOC)
    • 27 *.html files (2,774 LOC)
    • 4 *.css files (695 LOC)
    • 4 *.py files (397 LOC)
    • 1 *.cpp files (305 LOC)
    • 1 *.g4 files (206 LOC)
    • 3 *.yaml files (12 LOC)
    • 1 *.rb files (4 LOC)
  • " *.js" is biggest, containing 72.62% of LOC.
  • " *.rb" is smallest, containing 0% of LOC.


*.js91333 LOC (72%) 346 files
*.c18296 LOC (14%) 53 files
*.asm6009 LOC (4%) 4 files
*.h5737 LOC (4%) 27 files
*.html2774 LOC (2%) 27 files
*.css695 LOC (<1%) 4 files
*.py397 LOC (<1%) 4 files
*.cpp305 LOC (<1%) 1 file
*.g4206 LOC (<1%) 1 file
*.yaml12 LOC (<1%) 3 files
*.rb4 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*/karma[.]conf[.]js".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*__tests__.*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]test[.].*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*/[Ss]pecs/.*".
    • files with paths like ".*_mock[.][a-zA-Z0-9_\-]+".
    • files with paths like ".*/e2e/.*".
    • files with paths like ".*[.]spec[.]js".
    • files with paths like ".*/__mock[a-zA-Z0-9_\- ]+/.*".
  • 4 files match defined criteria (97 LOC, 0.1% vs. main code):
    • 2 *.html files (75 LOC)
    • 2 *.js files (22 LOC)
  • " *.html" is biggest, containing 77.32% of LOC.
  • " *.js" is smallest, containing 22.68% of LOC.


*.html75 LOC (77%) 2 files
*.js22 LOC (22%) 2 files
Generated Code
Automatically generated files, not manually changed after generation.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with any line of content like "//[ ]*Generated by .*".
    • files with any line of content like "// Generated using .*".
    • files with paths like ".*/generated/.*".
    • files with paths like ".*/package[-]lock[.]json".
  • 6 files match defined criteria (18,573 LOC, 14.8% vs. main code):
    • 5 *.js files (11,594 LOC)
    • 1 *.json files (6,979 LOC)
  • " *.js" is biggest, containing 62.42% of LOC.
  • " *.json" is smallest, containing 37.58% of LOC.


*.js11594 LOC (62%) 5 files
*.json6979 LOC (37%) 1 file
Build and Deployment Code
Source code used to configure or support build and deployment process.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/package[.]json".
    • files with paths like ".*([.]|/)webpack([.]|/).*".
    • files with paths like ".*[.]sh".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitattributes".
    • files with paths like ".*/package[-]lock[.]json".
  • 3 files match defined criteria (141 LOC, 0.1% vs. main code):
    • 2 *.sh files (86 LOC)
    • 1 *.js files (55 LOC)
  • " *.sh" is biggest, containing 60.99% of LOC.
  • " *.js" is smallest, containing 39.01% of LOC.


*.sh86 LOC (60%) 2 files
*.js55 LOC (39%) 1 file
Other Code
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*/[.]npmignore".
    • files with paths like ".*/[.]eslintignore".
    • files with paths like ".*[.]markdown".
    • files with paths like ".*[.]patch".
    • files with paths like ".*[.]editorconfig".
    • files with paths like ".*/vendor/.*".
    • files with paths like ".*[.]svg".
    • files with paths like ".*/[.]prettierignore".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*/[Dd]emos?/.*".
    • files with paths like ".*[.](rst|rest|resttxt|rsttxt)".
  • 13 files match defined criteria (13,765 LOC, 10.9% vs. main code):
    • 5 *.json files (12,888 LOC)
    • 6 *.md files (556 LOC)
    • 1 *.rst files (280 LOC)
    • 1 *.svg files (41 LOC)
  • " *.json" is biggest, containing 93.63% of LOC.
  • " *.svg" is smallest, containing 0.3% of LOC.


*.json12888 LOC (93%) 5 files
*.md556 LOC (4%) 6 files
*.rst280 LOC (2%) 1 file
*.svg41 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-11 19:49