Discussion:
[chromium-bugs] Issue 587310 in chromium: Temporary V8 handles keep Oilpan objects alive for much longer than normal
c***@googlecode.com
2016-02-17 03:42:54 UTC
Permalink
Status: Untriaged
Owner: ----
Labels: Type-Feature Pri-3 Cr-Blink-MemoryAllocator-GarbageCollection
OS-Linux Cr-Blink-JavaScript-GC Performance-Memory

New issue 587310 by ***@chromium.org: Temporary V8 handles keep
Oilpan objects alive for much longer than normal
https://code.google.com/p/chromium/issues/detail?id=587310

Version: 50, refs/heads/master@{#375106}
OS: Linux

What steps will reproduce the problem?

1. Apply patch (https://codereview.chromium.org/1698093005) to add memory
optimisation for Web Animations.

2. Open https://jsfiddle.net/qxv578xz/ and watch the graph grow and drop
whenever there's a GC.
This is what I see: Loading Image...

3. Apply patch (https://codereview.chromium.org/1707553002) to make
element.animate() return nullptr to V8.

4. Open https://jsfiddle.net/qxv578xz/ and watch the graph grow and drop
significantly faster than before.
This is what I see: Loading Image...


What is the expected output?
The graphs should be the same, since the script on the page is not storing
the return value from element.animate() in any variable. The graph in step
2 should look like the one in step 4.


What do you see instead?
The temporary V8 wrapper objects persist much much longer than expected
causing Oilpan to hold onto objects (unreachable from script variables)
longer than it would normally.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

---
You received this message because you are subscribed to the Google Groups "Chromium-bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2016-02-17 13:08:03 UTC
Permalink
Updates:
Status: Available
Cc: ***@chromium.org ***@chromium.org ***@chromium.org

Comment #1 on issue 587310 by ***@google.com: Temporary V8 handles keep
Oilpan objects alive for much longer than normal
https://code.google.com/p/chromium/issues/detail?id=587310

(No comment was entered for this change.)
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

---
You received this message because you are subscribed to the Google Groups "Chromium-bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2016-02-17 13:17:03 UTC
Permalink
Comment #2 on issue 587310 by ***@chromium.org: Temporary V8 handles
keep Oilpan objects alive for much longer than normal
https://code.google.com/p/chromium/issues/detail?id=587310

Just help me understand: How much of the problem is caused by the delay of
V8 GC (i.e., the animation object is kept alive until the next V8 GC is
triggered), and how much of the problem is caused by the delay of Oilpan's
GC (i.e., even if the V8 GC dropped a reference to the animation object,
the object won't get collected until the next Oilpan's GC is triggered)?
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

---
You received this message because you are subscribed to the Google Groups "Chromium-bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2016-02-17 13:19:03 UTC
Permalink
Updates:
Cc: oilpan-***@chromium.org

Comment #3 on issue 587310 by ***@chromium.org: Temporary V8 handles
keep Oilpan objects alive for much longer than normal
https://code.google.com/p/chromium/issues/detail?id=587310

(No comment was entered for this change.)
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

---
You received this message because you are subscribed to the Google Groups "Chromium-bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2016-02-17 22:54:05 UTC
Permalink
Comment #5 on issue 587310 by ***@chromium.org: Temporary V8 handles
keep Oilpan objects alive for much longer than normal
https://code.google.com/p/chromium/issues/detail?id=587310

Note: the patch in step 1 (https://codereview.chromium.org/1698093005) has
recently landed so there's no need to apply it to be able to repro the V8
behaviour on ToT.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

---
You received this message because you are subscribed to the Google Groups "Chromium-bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2016-02-18 00:57:11 UTC
Permalink
Comment #6 on issue 587310 by ***@chromium.org: Temporary V8 handles
keep Oilpan objects alive for much longer than normal
https://code.google.com/p/chromium/issues/detail?id=587310

I altered the test page to allocate 1MB in V8 on every frame:
https://jsfiddle.net/qxv578xz/1
This is what I see: Loading Image...
The memory usage on the page is around 150-200MB and Oilpanned Animation
objects are being frequently cleaned up.

Contrast this with not allocating 1MB every frame
(http://i.imgur.com/gREbY4g.png).
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

---
You received this message because you are subscribed to the Google Groups "Chromium-bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2016-02-18 10:23:53 UTC
Permalink
Comment #7 on issue 587310 by ***@chromium.org: Temporary V8 handles
keep Oilpan objects alive for much longer than normal
https://code.google.com/p/chromium/issues/detail?id=587310

Alan: Would you apply https://codereview.chromium.org/1670463002/ and see
if the CL fixes the GC timing? The CL reports the size of Oilpan's heap to
V8 so that V8 GC can be aware of the size behind the wrapper.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

---
You received this message because you are subscribed to the Google Groups "Chromium-bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
Loading...