Skip to content

Expensive Headers

Jer Noble edited this page Nov 21, 2024 · 8 revisions

This page contains a list of the most "expensive" headers (in terms of CPU time spent compiling said headers) in various projects within WebKit. This data was generated by clang -ftime and collated for analysis by ClangBuildAnalyzer, per the instructions at Analyzing Build Performance.

Current data is as of 286806@main.

Top 20 Most Expensive JavaScriptCore Headers:

502341 ms: Source/JavaScriptCore/assembler/MacroAssembler.h (included 192 times, avg 2616 ms), 
438444 ms: WebKitBuild/Debug/usr/local/include/wtf/TZoneMallocInlines.h (included 197 times, avg 2225 ms), 
422620 ms: Source/JavaScriptCore/jit/GPRInfo.h (included 191 times, avg 2212 ms), 
405073 ms: Source/JavaScriptCore/bytecode/CodeBlock.h (included 183 times, avg 2213 ms), 
154080 ms: Source/JavaScriptCore/runtime/JSCJSValueInlines.h (included 124 times, avg 1242 ms), 
152987 ms: Source/JavaScriptCore/runtime/JSCellInlines.h (included 122 times, avg 1253 ms), 
128285 ms: runtime/JSCJSValueInlines.h (included 43 times, avg 2983 ms), 
125909 ms: runtime/JSCellInlines.h (included 45 times, avg 2797 ms), 
89080 ms: runtime/JSCInlines.h (included 46 times, avg 1936 ms), 
73444 ms: Source/JavaScriptCore/jit/CCallHelpers.h (included 185 times, avg 396 ms), 
66482 ms: dfg/DFGGraph.h (included 17 times, avg 3910 ms), 
58092 ms: Source/JavaScriptCore/runtime/VM.h (included 159 times, avg 365 ms), 
56015 ms: WebKitBuild/Debug/DerivedSources/JavaScriptCore/BytecodeStructs.h (included 55 times, avg 1018 ms), 
51717 ms: WebKitBuild/Debug/usr/local/include/wtf/Threading.h (included 204 times, avg 253 ms), 
51053 ms: Source/JavaScriptCore/runtime/JSGlobalObject.h (included 185 times, avg 275 ms), 
43351 ms: Source/JavaScriptCore/bytecode/ArrayProfile.h (included 183 times, avg 236 ms), 
42300 ms: Source/JavaScriptCore/wasm/WasmFormat.h (included 94 times, avg 450 ms), 
42251 ms: Source/JavaScriptCore/dfg/DFGGraph.h (included 11 times, avg 3841 ms), 
42181 ms: runtime/JSObject.h (included 41 times, avg 1028 ms), 
41432 ms: Source/JavaScriptCore/runtime/JSCInlines.h (included 73 times, avg 567 ms), 

Top 20 Most Expensive WebCore Headers:

1419637 ms: WebKitBuild/Debug/usr/local/include/wtf/TZoneMallocInlines.h (included 638 times, avg 2225 ms), 
762867 ms: Source/WebCore/platform/graphics/GraphicsLayer.h (included 408 times, avg 1869 ms), 
565489 ms: Source/WebCore/platform/graphics/ImageBuffer.h (included 401 times, avg 1410 ms), 
556430 ms: Source/WebCore/dom/Document.h (included 478 times, avg 1164 ms), 
458306 ms: Source/WebCore/dom/ScriptExecutionContext.h (included 515 times, avg 889 ms), 
444062 ms: WebKitBuild/Debug/JavaScriptCore.framework/PrivateHeaders/StructureInlines.h (included 282 times, avg 1574 ms), 
403028 ms: WebKitBuild/Debug/JavaScriptCore.framework/PrivateHeaders/JSCJSValueInlines.h (included 282 times, avg 1429 ms), 
398449 ms: Source/WebCore/dom/ContextDestructionObserverInlines.h (included 431 times, avg 924 ms), 
388783 ms: Source/WebCore/css/calc/CSSCalcTree.h (included 474 times, avg 820 ms), 
384725 ms: Source/WebCore/dom/Element.h (included 468 times, avg 822 ms), 
375045 ms: WebKitBuild/Debug/JavaScriptCore.framework/PrivateHeaders/JSCellInlines.h (included 282 times, avg 1329 ms), 
333410 ms: Source/WebCore/dom/DocumentInlines.h (included 241 times, avg 1383 ms), 
315638 ms: Source/WebCore/page/LocalDOMWindow.h (included 286 times, avg 1103 ms), 
304862 ms: Source/WebCore/html/ImageBitmap.h (included 300 times, avg 1016 ms), 
277095 ms: Source/WebCore/platform/calc/CalculationTree.h (included 475 times, avg 583 ms), 
274959 ms: Source/WebCore/platform/animation/AcceleratedEffect.h (included 410 times, avg 670 ms), 
267125 ms: Source/WebCore/platform/animation/AcceleratedEffectStack.h (included 409 times, avg 653 ms), 
261066 ms: Source/WebCore/platform/graphics/GraphicsContext.h (included 248 times, avg 1052 ms), 
241461 ms: Source/WebCore/dom/ElementInlines.h (included 195 times, avg 1238 ms), 
233423 ms: Source/WebCore/rendering/RenderObject.h (included 431 times, avg 541 ms), 

Top 20 Most Expensive WebKit Headers:

1055189 ms: WebKitBuild/Debug/usr/local/include/wtf/TZoneMallocInlines.h (included 474 times, avg 2226 ms), 
761246 ms: Source/WebKit/WebProcess/WebPage/WebPage.h (included 193 times, avg 3944 ms), 
590937 ms: Source/WebKit/WebProcess/Extensions/Bindings/JSWebExtensionWrapper.h (included 70 times, avg 8441 ms), 
579494 ms: Source/WebKit/UIProcess/Extensions/WebExtensionContext.h (included 171 times, avg 3388 ms), 
562338 ms: WebKitBuild/Debug/WebCore.framework/PrivateHeaders/ChromeClient.h (included 194 times, avg 2898 ms), 
524019 ms: Source/WebKit/UIProcess/Extensions/WebExtensionController.h (included 171 times, avg 3064 ms), 
518556 ms: WebKitBuild/Debug/WebCore.framework/PrivateHeaders/AXObjectCache.h (included 197 times, avg 2632 ms), 
461350 ms: Source/WebKit/Shared/PolicyDecision.h (included 269 times, avg 1715 ms), 
456843 ms: WebKitBuild/Debug/WebCore.framework/PrivateHeaders/TextIterator.h (included 199 times, avg 2295 ms), 
411004 ms: Source/WebKit/UIProcess/WebProcessProxy.h (included 232 times, avg 1771 ms), 
282050 ms: Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h (included 238 times, avg 1185 ms), 
279881 ms: Source/WebKit/UIProcess/WebURLSchemeTask.h (included 183 times, avg 1529 ms), 
279051 ms: Source/WebKit/UIProcess/API/APIPageConfiguration.h (included 180 times, avg 1550 ms), 
275480 ms: Source/WebKit/WebProcess/WebPage/WebFrame.h (included 183 times, avg 1505 ms), 
265174 ms: Source/WebKit/Shared/Extensions/WebExtensionFrameIdentifier.h (included 171 times, avg 1550 ms), 
243386 ms: Source/WebKit/UIProcess/Network/NetworkProcessProxy.h (included 235 times, avg 1035 ms), 
240960 ms: Source/WebKit/Shared/WebsitePoliciesData.h (included 279 times, avg 863 ms), 
237091 ms: WebKitBuild/Debug/WebCore.framework/PrivateHeaders/DocumentLoader.h (included 280 times, avg 846 ms), 
212779 ms: WebKitBuild/Debug/WebCore.framework/PrivateHeaders/GraphicsLayer.h (included 249 times, avg 854 ms), 
210852 ms: Source/WebKit/Platform/IPC/JSIPCBinding.h (included 121 times, avg 1742 ms),
Clone this wiki locally