Bug 970123 - Avoid read-aheading icudt52.dll for better startup performance; r=glandium, a=sylvestre
authorEhsan Akhgari <ehsan@mozilla.com>
Tue, 18 Feb 2014 01:30:36 -0500
changeset 177186 994d366b8ee74e25ff97c6104c5599bb30f87c13
parent 177185 fee8724f4c709cd075a627f7c13a4334fe186a11
child 177187 7ae9d8bc8ba62d87404c1ab11157759e6b5657d4
push id5287
push usergijskruitbosch@gmail.com
push dateMon, 24 Feb 2014 18:19:40 +0000
treeherdermozilla-aurora@994d366b8ee7 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersglandium, sylvestre
bugs970123
milestone29.0a2
Bug 970123 - Avoid read-aheading icudt52.dll for better startup performance; r=glandium, a=sylvestre Bug 970123 follow-up: convert the tabs injected into the file into spaces
toolkit/library/dependentlibs.py
--- a/toolkit/library/dependentlibs.py
+++ b/toolkit/library/dependentlibs.py
@@ -98,17 +98,21 @@ def dependentlibs(lib, libpaths, func):
     deps = []
     for dep in func(lib):
         if dep in deps or os.path.isabs(dep):
             continue
         for dir in libpaths:
             deppath = os.path.join(dir, dep)
             if os.path.exists(deppath):
                 deps.extend([d for d in dependentlibs(deppath, libpaths, func) if not d in deps])
-                deps.append(dep)
+                # Black list the ICU data DLL because preloading it at startup
+                # leads to startup performance problems because of its excessive
+                # size (around 10MB).
+                if not dep.startswith("icudt"):
+                    deps.append(dep)
                 break
 
     return deps
 
 def main():
     parser = OptionParser()
     parser.add_option("-L", dest="libpaths", action="append", metavar="PATH", help="Add the given path to the library search path")
     parser.add_option("-p", dest="toolchain_prefix", metavar="PREFIX", help="Use the given prefix to readelf")