[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-dev] Some profile numbers with potlatch/earlier GC
From: |
strk |
Subject: |
[Gnash-dev] Some profile numbers with potlatch/earlier GC |
Date: |
Tue, 22 Dec 2009 00:23:42 +0100 |
Top profile when running potlatch (photo) with GC runs
on ActionExec cleanup (end of function calls):
% cumulative self self total
time seconds seconds calls s/call s/call name
20.97 9.76 9.76 11557741 0.00 0.00
gnash::XMLNode_as::setReachable()
12.78 15.71 5.95 37786384 0.00 0.00
gnash::PropertyList::setReachable() const
Graph starting at GC::runCycle:
[10] 52.3 0.00 24.35 296 gnash::GC::runCycle() [10]
0.00 20.50 296/296
gnash::VM::markReachableResources() const [11]
3.40 0.45 296/296 gnash::GC::cleanUnreachable()
[29]
As you can see the most expensive GC phase is the marking one,
and that's due to marking of XML nodes.
The whole XML object is a local variable, so all that marking time
is just NOT spent if we collect at action execution end...
Potlatch code:
function loadPhotos() {
var kmldoc=new XML();
kmldoc.load(...);
kmldoc.onLoad=function() {
...that horrible loop here, including function calls...
};
};
So, to recap, aggressive GC is just too expensive as there are too
many additional things reachable during action execution.
This is unless we're doing something stupid (duplicating marks)
while marking Relay objects, which I can't tell out of the box....
--strk;
Free GIS & Flash consultant/developer () ASCII Ribbon Campaign
http://foo.keybit.net/~strk/services.html /\ Keep it simple!
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-dev] Some profile numbers with potlatch/earlier GC,
strk <=