Title: [129773] trunk/Source/_javascript_Core
Revision
129773
Author
kl...@webkit.org
Date
2012-09-27 10:04:40 -0700 (Thu, 27 Sep 2012)

Log Message

3.20MB below FunctionParameters::create() on Membuster3.
<http://webkit.org/b/97730>

Reviewed by Anders Carlsson.

Figure out the exact space needed for parameter identifiers and use reserveInitialCapacity().
Reduces memory consumption on Membuster3 by ~1.60 MB.

* parser/Nodes.cpp:
(JSC::FunctionParameters::FunctionParameters):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (129772 => 129773)


--- trunk/Source/_javascript_Core/ChangeLog	2012-09-27 17:01:58 UTC (rev 129772)
+++ trunk/Source/_javascript_Core/ChangeLog	2012-09-27 17:04:40 UTC (rev 129773)
@@ -1,3 +1,16 @@
+2012-09-27  Andreas Kling  <kl...@webkit.org>
+
+        3.20MB below FunctionParameters::create() on Membuster3.
+        <http://webkit.org/b/97730>
+
+        Reviewed by Anders Carlsson.
+
+        Figure out the exact space needed for parameter identifiers and use reserveInitialCapacity().
+        Reduces memory consumption on Membuster3 by ~1.60 MB.
+
+        * parser/Nodes.cpp:
+        (JSC::FunctionParameters::FunctionParameters):
+
 2012-09-27  Csaba Osztrogonác  <o...@webkit.org>, Tor Arne Vestbø  <ves...@webkit.org>
 
         [Qt] Enable the LLInt on Linux

Modified: trunk/Source/_javascript_Core/parser/Nodes.cpp (129772 => 129773)


--- trunk/Source/_javascript_Core/parser/Nodes.cpp	2012-09-27 17:01:58 UTC (rev 129772)
+++ trunk/Source/_javascript_Core/parser/Nodes.cpp	2012-09-27 17:04:40 UTC (rev 129773)
@@ -153,8 +153,14 @@
 
 FunctionParameters::FunctionParameters(ParameterNode* firstParameter)
 {
+    unsigned parameterCount = 0;
     for (ParameterNode* parameter = firstParameter; parameter; parameter = parameter->nextParam())
-        append(parameter->ident());
+        ++parameterCount;
+
+    reserveInitialCapacity(parameterCount);
+
+    for (ParameterNode* parameter = firstParameter; parameter; parameter = parameter->nextParam())
+        uncheckedAppend(parameter->ident());
 }
 
 inline FunctionBodyNode::FunctionBodyNode(JSGlobalData* globalData, const JSTokenLocation& location, bool inStrictContext)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to