Index: runtime/vm/dart.cc |
=================================================================== |
--- runtime/vm/dart.cc (revision 43108) |
+++ runtime/vm/dart.cc (working copy) |
@@ -34,10 +34,14 @@ |
DEFINE_FLAG(int, new_gen_semi_max_size, (kWordSize <= 4) ? 16 : 32, |
"Max size of new gen semi space in MB"); |
-DEFINE_FLAG(int, old_gen_heap_size, Heap::kHeapSizeInMB, |
- "Max size of old gen heap size in MB," |
+DEFINE_FLAG(int, old_gen_heap_size, 0, |
+ "Max size of old gen heap size in MB, or 0 for unlimited," |
"e.g: --old_gen_heap_size=1024 allows up to 1024MB old gen heap"); |
+DEFINE_FLAG(int, external_max_size, (kWordSize <= 4) ? 512 : 1024, |
+ "Max total size of external allocations in MB, or 0 for unlimited," |
+ "e.g: --external_max_size=1024 allows up to 1024MB of externals"); |
+ |
DECLARE_FLAG(bool, print_class_table); |
DECLARE_FLAG(bool, trace_isolates); |
@@ -114,7 +118,8 @@ |
HandleScope handle_scope(vm_isolate_); |
Heap::Init(vm_isolate_, |
0, // New gen size 0; VM isolate should only allocate in old. |
- FLAG_old_gen_heap_size * MBInWords); |
+ FLAG_old_gen_heap_size * MBInWords, |
+ FLAG_external_max_size * MBInWords); |
ObjectStore::Init(vm_isolate_); |
TargetCPUFeatures::InitOnce(); |
Object::InitOnce(vm_isolate_); |
@@ -197,7 +202,8 @@ |
HandleScope handle_scope(isolate); |
Heap::Init(isolate, |
FLAG_new_gen_semi_max_size * MBInWords, |
- FLAG_old_gen_heap_size * MBInWords); |
+ FLAG_old_gen_heap_size * MBInWords, |
+ FLAG_external_max_size * MBInWords); |
ObjectIdRing::Init(isolate); |
ObjectStore::Init(isolate); |