Closed
Bug 628369
Opened 15 years ago
Closed 7 years ago
ScriptObject::gc() is inefficient
Categories
(Tamarin Graveyard :: Virtual Machine, defect)
Tamarin Graveyard
Virtual Machine
Tracking
(Not tracked)
RESOLVED
WONTFIX
Future
People
(Reporter: stejohns, Unassigned)
Details
It is implemented as
return vtable->traits->core->GetGC();
But would be more efficient as
return MMgc::GC::GetGC(this);
Comment 1•15 years ago
|
||
GC::GetGC(GCObject*) has always been looked upon with derision b/c its a theoretical impediment to different allocation schemes (such as a bump pointer nursery). As always perf #'s speak volumes.
Comment 2•15 years ago
|
||
Many of our key api objects have a gc() method for getting the gc whatever way is fastest, even if the implementation changes. We're only talking about a handful of accessor methods that would have to change.
If bug 619858 lands they all can go away.
Comment 3•15 years ago
|
||
(In reply to comment #1)
> GC::GetGC(GCObject*) has always been looked upon with derision b/c its a
> theoretical impediment to different allocation schemes (such as a bump pointer
> nursery).
I don't see how it's true that it's an impediment, though it may be true for the current implementation of GC::GetGC in 4K pages. One could imagine larger allocation units if we want to keep the implementation, or the implementation could go via the page table, which would obviously be quite a bit slower.
Comment 4•15 years ago
|
||
(In reply to comment #3)
> or the implementation
> could go via the page table, which would obviously be quite a bit slower.
Note that would require implementing something like the scheme in Bug 610982. Currently you need a GC* in order to get your hands on the page table.
| Reporter | ||
Comment 5•15 years ago
|
||
My main point is that with the current implementation, it's almost inconceivable that the GetGC(this) approach wouldn't be fewer loads. (But yeah, no substiture for measuring.) If/when GetGC(this) becomes invalid, we change the impl of gc().
Comment 6•7 years ago
|
||
Tamarin isn't maintained anymore. WONTFIX remaining bugs.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•