From 63d20d3b1ef35cb4398d63d62f631f7f5d2935c7 Mon Sep 17 00:00:00 2001 From: Riley Dulin Date: Thu, 23 Jul 2020 10:24:14 -0700 Subject: [PATCH] Set the max heap size for OSS apps on Android to be 1 GB for Hermes Summary: The max heap size currently is 512 MB for OSS apps using Hermes on Android. Some users (see https://github.com/facebook/hermes/issues/295) are experiencing long pauses when reaching this ceiling. Increasing this limit to 1 GB should reduce the frequency of these pauses occurring for apps where the expected heap usage is near 512 MB. Changelog: [Internal] Set Hermes's default max heap size to 1 GB Reviewed By: mhorowitz Differential Revision: D22577343 fbshipit-source-id: 2d7d688e38e95a082692dca52d010d0449a6e64b --- .../hermes/reactexecutor/HermesExecutorFactory.java | 2 +- .../com/facebook/hermes/reactexecutor/RuntimeConfig.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutorFactory.java b/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutorFactory.java index ce09abba961..976af80b1ee 100644 --- a/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutorFactory.java +++ b/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutorFactory.java @@ -17,7 +17,7 @@ public class HermesExecutorFactory implements JavaScriptExecutorFactory { private final RuntimeConfig mConfig; public HermesExecutorFactory() { - this(null); + this(new RuntimeConfig(1024)); } public HermesExecutorFactory(RuntimeConfig config) { diff --git a/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/RuntimeConfig.java b/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/RuntimeConfig.java index 15349f1d8d0..8300e5e55e0 100644 --- a/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/RuntimeConfig.java +++ b/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/RuntimeConfig.java @@ -11,4 +11,10 @@ package com.facebook.hermes.reactexecutor; public final class RuntimeConfig { public long heapSizeMB; public boolean es6Proxy; + + RuntimeConfig() {} + + RuntimeConfig(long heapSizeMB) { + this.heapSizeMB = heapSizeMB; + } }