Title: [210498] trunk/Source/_javascript_Core
Revision
210498
Author
akl...@apple.com
Date
2017-01-08 21:35:14 -0800 (Sun, 08 Jan 2017)

Log Message

Inject MarkedSpace size classes for a few more high-volume objects.
<https://webkit.org/b/166815>

Reviewed by Darin Adler.

Add the following classes to the list of manually injected size classes:

    - JSString
    - JSFunction
    - PropertyTable
    - Structure

Only Structure actually ends up with a new size class, the others already
can't get any tighter due to the current MarkedBlock::atomSize being 16.
I've put them in anyway to ensure that we have optimally carved-out cells
for them in the future, should they grow.

With this change, Structures get allocated in 128-byte cells instead of
160-byte cells, giving us 25% more Structures per MarkedBlock.

* heap/MarkedSpace.cpp:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (210497 => 210498)


--- trunk/Source/_javascript_Core/ChangeLog	2017-01-09 04:12:17 UTC (rev 210497)
+++ trunk/Source/_javascript_Core/ChangeLog	2017-01-09 05:35:14 UTC (rev 210498)
@@ -1,3 +1,27 @@
+2017-01-08  Andreas Kling  <akl...@apple.com>
+
+        Inject MarkedSpace size classes for a few more high-volume objects.
+        <https://webkit.org/b/166815>
+
+        Reviewed by Darin Adler.
+
+        Add the following classes to the list of manually injected size classes:
+
+            - JSString
+            - JSFunction
+            - PropertyTable
+            - Structure
+
+        Only Structure actually ends up with a new size class, the others already
+        can't get any tighter due to the current MarkedBlock::atomSize being 16.
+        I've put them in anyway to ensure that we have optimally carved-out cells
+        for them in the future, should they grow.
+
+        With this change, Structures get allocated in 128-byte cells instead of
+        160-byte cells, giving us 25% more Structures per MarkedBlock.
+
+        * heap/MarkedSpace.cpp:
+
 2017-01-06  Saam Barati  <sbar...@apple.com>
 
         Add a slice intrinsic to the DFG/FTL

Modified: trunk/Source/_javascript_Core/heap/MarkedSpace.cpp (210497 => 210498)


--- trunk/Source/_javascript_Core/heap/MarkedSpace.cpp	2017-01-09 04:12:17 UTC (rev 210497)
+++ trunk/Source/_javascript_Core/heap/MarkedSpace.cpp	2017-01-09 05:35:14 UTC (rev 210498)
@@ -130,10 +130,15 @@
                 add(betterSizeClass);
             }
 
+            // Manually inject size classes for objects we know will be allocated in high volume.
             add(sizeof(UnlinkedFunctionExecutable));
             add(sizeof(UnlinkedFunctionCodeBlock));
             add(sizeof(FunctionExecutable));
             add(sizeof(FunctionCodeBlock));
+            add(sizeof(JSString));
+            add(sizeof(JSFunction));
+            add(sizeof(PropertyTable));
+            add(sizeof(Structure));
 
             {
                 // Sort and deduplicate.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to