Search |
What is happening with the memory consumption of WebKit on 64 bit?64 bit systems allow allocating more memory, but this extra space has a trade-of: the pointers are grown to 64 bit wide which increases the total memory consumption. Ever wondered about the price of 64 bit? Well, you can find comparisons here about some popular pages on the Qt port of WebKit. Furthermore, we offer some CSS subsystem related comparisons at the end of the post. Profiling memory consumption is difficult, since most tools just collect a huge amount of unordered data, throw it on you, and be happy. This was motivated me to create a new tool for valgrind called Freya. This tool offered a way to better organize the results. Unfortunately it was not updated for a long time. Now that valgrind 3.6.1 is out, I decided to continue the project: move to the latest valgrind and fix all known bugs (thanks for reporting them). The measurement performed on a machine which has both 32 and 64 bit environments of the same Linux distribution. The configuration file for Freya is in the attachments section. Since the numbers are peak memory consumptions, the total is not necessary equal to the sum of the sub-totals. It is usually lower. Enough talk now, here are the numbers: Let's start with www.google.com on a 32 | 64 bit system.
WebKit: 1.7Mb | 2.4Mb
Loader: 291.2Kb | 312.5Kb Other: 161.1Kb | 233.7Kb CSS-all: 152.1Kb | 216.5Kb
CSS-parser: 54.3Kb | 74.5Kb Page: 109.0Kb | 181.4Kb Qt: 1.4Mb | 1.8Mb
QtCore: 760.2Kb | 904.4Kb QtOther: 22.0Kb | 36.0Kb Other: 227.5Kb | 291.0Kb Let's continue with www.facebook.com on a 32 | 64 bit system. Total: 9.7Mb | 12.5Mb
QtCore: 1.2Mb | 1.4Mb QtOther: 20.2Kb | 56.7Kb WebKit: 3.4Mb | 4.8Mb
Loader: 737.4Kb | 778.1Kb CSS-all: 686.1Kb | 1.0Mb
CSS-parser: 257.6Kb Page: 246.5Kb | 415.1Kb Libs: 1.8Mb | 3.2Mb
Other: 348.2Kb | 401.3Kb The next one is www.bbc.co.uk on a 32 | 64 bit system. More color-ful
Loader: 1.4Mb | 1.6Mb CSS-all: 874.5Kb | 1.2Mb
CSS-parser: 283.2Kb | 455.8Kb Page: 786.8Kb | 1.3Mb Qt: 7.5Mb | 8.2Mb
QtCore: 1.9Mb | 2.1Mb QtOther: 547.8Kb | 585.7Kb Libs: 1.8Mb | 3.2Mb
Other: 536.9Kb | 642.8Kb Git manual (http://www.kernel.org/pub/software/scm/git/docs/user-manual.html) on a 32 | 64 bit system.
Page: 1.0Mb | 1.6Mb CSS-all: 463.0Kb | 611.8Kb
CSS-parser: 54.3Kb | 74.5Kb Loader: 359.3Kb | 332.5Kb Libs: 1.8Mb | 3.2Mb
Qt: 1.5Mb | 1.9Mb
QtCore: 927.6Kb | 1.1Mb Other: 232.7Kb | 309.8Kb The Last one is us.battle.net/sc2 on a 32 | 64 bit system. This page is really eye-candy.
QtOther: 1.8Mb | 1.8Mb (libqjpeg: 1.7Mb on both) QtCore: 1.7Mb | 2.0Mb WebKit: 7.5Mb | 9.5Mb
Loader: 1.4Mb | 1.5Mb Other: 1.2Mb | 1.2Mb CSS-all: 692.7Kb | 1.0Mb
CSS-parser: 103.5Kb | 342.2Kb Page: 298.6Kb | 488.5Kb Libs: 1.9Mb | 3.2Mb
Other: 395.8Kb | 516.2Kb We thought before that the CSS plays a bigger role in the memory consumption, but it seems the opposite is true. The major player is JavaScriptCore with its ExecutableAllocator and garbage collected areas. Naturally images can consumes a huge amount of memory, but this depends on the page.
|
Monthly archive
|
Aidan Van Dyk (not verified) - 04/04/2011 - 18:58
Hm.. Javascript is the worst culprit... And then visit in gmail ;-(
zoltan.herczeg - 04/05/2011 - 09:45
Yeah. The garbage collected and executable memory area is oversized to squeeze out as much performance as possible.
Post new comment