mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 05:15:45 +00:00
Bug 1376038 - Part 2: Cache base domains during ghost window calculation. r=mccr8
Avoid hitting the rather slow effective TLD service by caching results when mapping URLs to their base domains. In testing the cache ranged from a 1:1 to a 3:1 hit:miss ratio.
This commit is contained in:
parent
0dc3c70d24
commit
eff9ba861a
@ -735,6 +735,7 @@ nsWindowMemoryReporter::CheckForGhostWindows(
|
||||
KillCheckTimer();
|
||||
|
||||
nsTHashtable<nsCStringHashKey> nonDetachedWindowDomains;
|
||||
nsDataHashtable<nsISupportsHashKey, nsCString> domainMap;
|
||||
|
||||
// Populate nonDetachedWindowDomains.
|
||||
for (auto iter = windowsById->Iter(); !iter.Done(); iter.Next()) {
|
||||
@ -749,8 +750,13 @@ nsWindowMemoryReporter::CheckForGhostWindows(
|
||||
nsCOMPtr<nsIURI> uri = GetWindowURI(window);
|
||||
nsAutoCString domain;
|
||||
if (uri) {
|
||||
tldService->GetBaseDomain(uri, 0, domain);
|
||||
domain = domainMap.LookupForAdd(uri).OrInsert([&]() {
|
||||
nsCString d;
|
||||
tldService->GetBaseDomain(uri, 0, d);
|
||||
return d;
|
||||
});
|
||||
}
|
||||
|
||||
nonDetachedWindowDomains.PutEntry(domain);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user