mirror of
https://github.com/zhigang1992/angular.js.git
synced 2026-04-11 10:59:24 +08:00
perf($cacheFactory): skip LRU bookkeeping for caches with unbound capacity
Fixes #6193 Closes #6226
This commit is contained in:
@@ -59,9 +59,11 @@ function $CacheFactoryProvider() {
|
||||
return caches[cacheId] = {
|
||||
|
||||
put: function(key, value) {
|
||||
var lruEntry = lruHash[key] || (lruHash[key] = {key: key});
|
||||
if (capacity < Number.MAX_VALUE) {
|
||||
var lruEntry = lruHash[key] || (lruHash[key] = {key: key});
|
||||
|
||||
refresh(lruEntry);
|
||||
refresh(lruEntry);
|
||||
}
|
||||
|
||||
if (isUndefined(value)) return;
|
||||
if (!(key in data)) size++;
|
||||
@@ -76,26 +78,31 @@ function $CacheFactoryProvider() {
|
||||
|
||||
|
||||
get: function(key) {
|
||||
var lruEntry = lruHash[key];
|
||||
if (capacity < Number.MAX_VALUE) {
|
||||
var lruEntry = lruHash[key];
|
||||
|
||||
if (!lruEntry) return;
|
||||
if (!lruEntry) return;
|
||||
|
||||
refresh(lruEntry);
|
||||
refresh(lruEntry);
|
||||
}
|
||||
|
||||
return data[key];
|
||||
},
|
||||
|
||||
|
||||
remove: function(key) {
|
||||
var lruEntry = lruHash[key];
|
||||
if (capacity < Number.MAX_VALUE) {
|
||||
var lruEntry = lruHash[key];
|
||||
|
||||
if (!lruEntry) return;
|
||||
if (!lruEntry) return;
|
||||
|
||||
if (lruEntry == freshEnd) freshEnd = lruEntry.p;
|
||||
if (lruEntry == staleEnd) staleEnd = lruEntry.n;
|
||||
link(lruEntry.n,lruEntry.p);
|
||||
if (lruEntry == freshEnd) freshEnd = lruEntry.p;
|
||||
if (lruEntry == staleEnd) staleEnd = lruEntry.n;
|
||||
link(lruEntry.n,lruEntry.p);
|
||||
|
||||
delete lruHash[key];
|
||||
}
|
||||
|
||||
delete lruHash[key];
|
||||
delete data[key];
|
||||
size--;
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user