perf($cacheFactory): skip LRU bookkeeping for caches with unbound capacity

Fixes #6193
Closes #6226
This commit is contained in:
Sekib Omazic
2014-02-12 11:33:50 +01:00
committed by Igor Minar
parent 39c82f3fb7
commit a4078fcae4

View File

@@ -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--;
},