summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShimeng (Simon) Wang <swang@google.com>2011-01-24 14:38:46 -0800
committerShimeng (Simon) Wang <swang@google.com>2011-01-25 09:55:11 -0800
commit7c1bcfddcdb8665b0a73a45028fb72123e00cfd5 (patch)
tree2ddadc013471d0919af1bdb80aea4de674157e05
parentaaa55d3f45744814907d0809befb49281ced462e (diff)
downloadframeworks_base-7c1bcfddcdb8665b0a73a45028fb72123e00cfd5.zip
frameworks_base-7c1bcfddcdb8665b0a73a45028fb72123e00cfd5.tar.gz
frameworks_base-7c1bcfddcdb8665b0a73a45028fb72123e00cfd5.tar.bz2
Set high usage delta to 1 to avoid constant V8 GC.
This value will be passed to native webkit to V8. 3 consecutive dromaeo DOM core are run, there's no crash. Because of assets change, Passion browser can't be run; this will need to be checked in I release, I think issue: 3317722 Change-Id: Ifa6e4116f76f395d98db9f8336f91dc9de6bf125
-rw-r--r--core/java/android/webkit/WebViewCore.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java
index bb4441f..0992079 100644
--- a/core/java/android/webkit/WebViewCore.java
+++ b/core/java/android/webkit/WebViewCore.java
@@ -130,6 +130,7 @@ final class WebViewCore {
private int mLowMemoryUsageThresholdMb;
private int mHighMemoryUsageThresholdMb;
+ private int mHighUsageDeltaMb;
// The thread name used to identify the WebCore thread and for use in
// debugging other classes that require operation within the WebCore thread.
@@ -186,12 +187,15 @@ final class WebViewCore {
// Allow us to use up to our memory class value before V8's GC kicks in.
// These values have been determined by experimentation.
- mLowMemoryUsageThresholdMb = manager.getMemoryClass();
+ mLowMemoryUsageThresholdMb = manager.getLargeMemoryClass();
// If things get crazy, allow V8 to use up to 3 times our memory class, or a third of the
- // device's total available memory, whichever is smaller. At that point V8 will start
- // attempting more aggressive garbage collection.
- mHighMemoryUsageThresholdMb = Math.min(mLowMemoryUsageThresholdMb * 3,
- (int) (memInfo.availMem / 3) >> 20);
+ // device's total available memory, whichever is smaller. This value must be no less
+ // than the low memory threshold.
+ // At that point V8 will start attempting more aggressive garbage collection.
+ mHighMemoryUsageThresholdMb = Math.max(Math.min(mLowMemoryUsageThresholdMb * 3,
+ (int) (memInfo.availMem / 3) >> 20), mLowMemoryUsageThresholdMb);
+ // Avoid constant V8 GC when memory usage equals to working set estimate.
+ mHighUsageDeltaMb = 1;
// Send a message to initialize the WebViewCore.
Message init = sWebCoreHandler.obtainMessage(