bufferpool@2.0 tune eviction params

bufferpool tries to manage memory consumption as low as 15MB usually.
Since it is too harsh for graphic input buffer use cases, if # of
buffers are under certain threshold make bufferpool ignore total memory
consumption.

Bug: 141605804
Change-Id: I20bd0438fede018e26984e0e3bc9a2007b0bc29b
gugelfrei
Sungtak Lee 5 years ago
parent 6112a9c691
commit 30dbaa2016

@ -37,7 +37,7 @@ namespace {
static constexpr int64_t kLogDurationUs = 5000000; // 5 secs
static constexpr size_t kMinAllocBytesForEviction = 1024*1024*15;
static constexpr size_t kMinBufferCountForEviction = 40;
static constexpr size_t kMinBufferCountForEviction = 25;
}
// Buffer structure in bufferpool process
@ -718,8 +718,8 @@ void Accessor::Impl::BufferPool::cleanUp(bool clearCache) {
mStats.mTotalFetches, mStats.mTotalTransfers);
}
for (auto freeIt = mFreeBuffers.begin(); freeIt != mFreeBuffers.end();) {
if (!clearCache && mStats.mSizeCached < kMinAllocBytesForEviction
&& mBuffers.size() < kMinBufferCountForEviction) {
if (!clearCache && (mStats.mSizeCached < kMinAllocBytesForEviction
|| mBuffers.size() < kMinBufferCountForEviction)) {
break;
}
auto it = mBuffers.find(*freeIt);

Loading…
Cancel
Save