Index: src/wasm/module-decoder.cc |
diff --git a/src/wasm/module-decoder.cc b/src/wasm/module-decoder.cc |
index 3e85a1b53cefd2e8ebbecf75cfa9a18e94b3f14e..cad915565625f1fe2f37aa552415d48620a7ec4a 100644 |
--- a/src/wasm/module-decoder.cc |
+++ b/src/wasm/module-decoder.cc |
@@ -767,15 +767,21 @@ class FunctionError : public FunctionResult { |
ModuleResult DecodeWasmModule(Isolate* isolate, Zone* zone, |
const byte* module_start, const byte* module_end, |
bool verify_functions, ModuleOrigin origin) { |
+ size_t decode_memory_start = zone->allocation_size(); |
+ HistogramTimerScope wasm_decode_module_time_scope( |
+ isolate->counters()->wasm_decode_module_time()); |
size_t size = module_end - module_start; |
if (module_start > module_end) return ModuleError("start > end"); |
if (size >= kMaxModuleSize) return ModuleError("size > maximum module size"); |
+ isolate->counters()->wasm_module_bytes()->AddSample(static_cast<int>(size)); |
WasmModule* module = new WasmModule(); |
ModuleDecoder decoder(zone, module_start, module_end, origin); |
- return decoder.DecodeModule(module, verify_functions); |
+ ModuleResult result = decoder.DecodeModule(module, verify_functions); |
+ isolate->counters()->wasm_decode_peak_memory()->AddSample( |
+ static_cast<int>(zone->allocation_size() - decode_memory_start)); |
+ return result; |
} |
- |
FunctionSig* DecodeWasmSignatureForTesting(Zone* zone, const byte* start, |
const byte* end) { |
ModuleDecoder decoder(zone, start, end, kWasmOrigin); |
@@ -787,10 +793,13 @@ FunctionResult DecodeWasmFunction(Isolate* isolate, Zone* zone, |
ModuleEnv* module_env, |
const byte* function_start, |
const byte* function_end) { |
+ HistogramTimerScope wasm_decode_function_time_scope( |
+ isolate->counters()->wasm_decode_function_time()); |
size_t size = function_end - function_start; |
if (function_start > function_end) return FunctionError("start > end"); |
if (size > kMaxFunctionSize) |
return FunctionError("size > maximum function size"); |
+ isolate->counters()->wasm_function_bytes()->AddSample(static_cast<int>(size)); |
WasmFunction* function = new WasmFunction(); |
ModuleDecoder decoder(zone, function_start, function_end, kWasmOrigin); |
return decoder.DecodeSingleFunction(module_env, function); |