summaryrefslogtreecommitdiff
path: root/chromium/docs/static_initializers.md
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-11-20 15:06:40 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-11-22 11:48:58 +0000
commitdaa093eea7c773db06799a13bd7e4e2e2a9f8f14 (patch)
tree96cc5e7b9194c1b29eab927730bfa419e7111c25 /chromium/docs/static_initializers.md
parentbe59a35641616a4cf23c4a13fa0632624b021c1b (diff)
downloadqtwebengine-chromium-daa093eea7c773db06799a13bd7e4e2e2a9f8f14.tar.gz
BASELINE: Update Chromium to 63.0.3239.58
Change-Id: Ia93b322a00ba4dd4004f3bcf1254063ba90e1605 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/docs/static_initializers.md')
-rw-r--r--chromium/docs/static_initializers.md35
1 files changed, 35 insertions, 0 deletions
diff --git a/chromium/docs/static_initializers.md b/chromium/docs/static_initializers.md
new file mode 100644
index 00000000000..7fcd3297c13
--- /dev/null
+++ b/chromium/docs/static_initializers.md
@@ -0,0 +1,35 @@
+# Static Initializers
+
+[TOC]
+
+Some background on the original decision to ban static initializers:
+
+http://neugierig.org/software/chromium/notes/2011/08/static-initializers.html
+
+# How Static Initializers are Checked
+
+* For Linux and Mac:
+ * The expected count is stored in [//tools/perf_expectations/perf_expectations.json](https://cs.chromium.org/chromium/src/tools/perf_expectations/perf_expectations.json)
+* For Android:
+ * The expected count is stored in the build target [//chrome/android:monochrome_static_initializers](https://cs.chromium.org/chromium/src/chrome/android/BUILD.gn)
+
+## Removing Static Initializers
+
+Common fixes include:
+
+* Add constexpr,
+* Use LazyInstance<>,
+* Move global variable to be a static variable within a function that returns it.
+
+## Listing Static Initializers
+
+For Linux:
+
+ tools/linux/dump-static-initializers.py out/Release/chrome
+
+For Android:
+
+ build/android/resource_sizes.py --chromium-output-directory out/Release --dump-static-initializers out/Release/apks/MonochromePublic.apk
+ tools/binary_size/diagnose_bloat.py HEAD
+
+For more information about `diagnose_bloat.py`, refer to its [README.md](../tools/binary_size/README.md)