Instrument eyeglass and broccoli-eyeglass for performance metrics gathering with heimdalljs.
This introduces metrics collections for the following:
Always enabled
eyeglass:broccoli:build:compileTree:<directory> - Each broccoli tree that gets compiled by broccoli-eyeglass.
Additional Metrics collected per tree:
cacheMissCount - how many sass files had to be recompiled
cacheHitCount- how many sass files were cached
numSassFiles - the number of sass files.
nodeSassTime - The time node-sass reports spending on compilation (includes waiting in the libuv worker queue).
importCount - The number of @import statements encountered.
uniqueImportCount - The number of @import statements that couldn't be deduplicated.
eyeglass:broccoli:build:invalidation - the cost of invalidating cache results based on what's changed since the last build.
eyeglass:instantiation - The cost of instantiation and module creation.
eyeglass:modules - eyeglass modules creation during instantiation
eyeglass:modules:discovery - discovery of eyeglass modules within npm modules.
eyeglass:modules:resolution - resolving transitive eyeglass modules into a single version.
Conditionally enabled
When the environment variable EYEGLASS_PERF_DEBUGGING is set to a non-empty string additional perf metrics are collected. These incur performance overhead and can bloat the
heimdall data returned.
Heimdall nodes are added for:
eyeglass:import:module - the cost of module import (most imports are these)
eyeglass:import:assets - the cost of asset importing (delegated from the module importer)
eyeglass:import:fs - the cost of fs importing (delegated from the asset importer)
A heimdall monitor named sassFns is enabled causing stats to be collected against the broccoli-eyeglass tree node:
The key is the sass function name that was invoked and the value is an object with a count and a time similar to how the heimdall fs monitor works. these times are collected with nanosecond precision. This only monitors sass functions implemented in js.
Instrument eyeglass and broccoli-eyeglass for performance metrics gathering with heimdalljs.
This introduces metrics collections for the following:
Always enabled
eyeglass:broccoli:build:compileTree:<directory>
- Each broccoli tree that gets compiled by broccoli-eyeglass.cacheMissCount
- how many sass files had to be recompiledcacheHitCount
- how many sass files were cachednumSassFiles
- the number of sass files.nodeSassTime
- The time node-sass reports spending on compilation (includes waiting in the libuv worker queue).importCount
- The number of@import
statements encountered.uniqueImportCount
- The number of@import
statements that couldn't be deduplicated.eyeglass:modules
- eyeglass modules creation during instantiationeyeglass:modules:discovery
- discovery of eyeglass modules within npm modules.eyeglass:modules:resolution
- resolving transitive eyeglass modules into a single version.Conditionally enabled
When the environment variable
EYEGLASS_PERF_DEBUGGING
is set to a non-empty string additional perf metrics are collected. These incur performance overhead and can bloat the heimdall data returned.Heimdall nodes are added for:
A heimdall monitor named
sassFns
is enabled causing stats to be collected against the broccoli-eyeglass tree node:count
and atime
similar to how the heimdallfs
monitor works. these times are collected with nanosecond precision. This only monitors sass functions implemented in js.