Index: webkit/glue/webkit_glue.cc |
diff --git a/webkit/glue/webkit_glue.cc b/webkit/glue/webkit_glue.cc |
index 496b837469889c2ff833e5b450572870bcf85a00..9150fe697de70cb38f5e2b89ef2b0927e80d3be0 100644 |
--- a/webkit/glue/webkit_glue.cc |
+++ b/webkit/glue/webkit_glue.cc |
@@ -46,6 +46,9 @@ |
#include "third_party/WebKit/Source/WebKit/chromium/public/win/WebInputEventFactory.h" |
#endif |
#include "v8/include/v8.h" |
+#if defined(OS_ANDROID) |
+#include "webkit/glue/dalvik_heap_size_android.h" |
+#endif |
#include "webkit/glue/glue_serialize.h" |
#include "webkit/glue/user_agent.h" |
@@ -81,6 +84,16 @@ bool g_forcefully_terminate_plugin_process = false; |
void SetJavaScriptFlags(const std::string& str) { |
tonyg
2012/04/19 16:04:30
This method's contract seems to be to set the flag
ulan
2012/04/19 17:46:24
I am not sure about moving dependency on DalvikHea
|
#if WEBKIT_USING_V8 |
+#if defined(OS_ANDROID) |
+ DalvikHeapSize* heap_size_singleton = DalvikHeapSize::GetInstance(); |
+ // Set V8 heap size to 6/8 of the device heap size. |
Erik Corry
2012/04/19 16:52:56
Why not 3/4?
ulan
2012/04/19 17:46:24
Done.
|
+ int heap_size = std::max(32, heap_size_singleton->HeapSizeMB() / 8 * 6); |
+ int code_size = heap_size / 4; |
+ std::string heap_flags = base::StringPrintf( |
+ "--max_old_gen_size=%d --max_executable_size=%d", heap_size, code_size); |
Erik Corry
2012/04/19 16:52:56
I think it would be cleaner to use SetResourceCons
ulan
2012/04/19 17:46:24
Proper place to call SetResourceConstraints seems
|
+ v8::V8::SetFlagsFromString(heap_flags.data(), |
+ static_cast<int>(heap_flags.size())); |
+#endif |
v8::V8::SetFlagsFromString(str.data(), static_cast<int>(str.size())); |
#endif |
} |