diff options
author | Shimeng (Simon) Wang <swang@google.com> | 2011-01-24 14:38:46 -0800 |
---|---|---|
committer | Shimeng (Simon) Wang <swang@google.com> | 2011-01-25 09:55:11 -0800 |
commit | 7c1bcfddcdb8665b0a73a45028fb72123e00cfd5 (patch) | |
tree | 2ddadc013471d0919af1bdb80aea4de674157e05 | |
parent | aaa55d3f45744814907d0809befb49281ced462e (diff) | |
download | frameworks_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.java | 14 |
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( |