logd: replace stats.add+stats.subtract with stats.addTotal
Replace stats.add(elem) + stats.subtract(elem) with a new more efficient method stats.addTotal(elem). Test: gTest liblog-unit-test, logd-unit-tests and logcat-unit-tests Bug: 37254265 Change-Id: I2b3c2ac44209772b38f383ae46fe6c4422b542cf
This commit is contained in:
parent
8b318d0c26
commit
02dd2f42f8
3 changed files with 20 additions and 11 deletions
|
@ -208,8 +208,7 @@ int LogBuffer::log(log_id_t log_id, log_time realtime, uid_t uid, pid_t pid,
|
|||
if (!__android_log_is_loggable(prio, tag, ANDROID_LOG_VERBOSE)) {
|
||||
// Log traffic received to total
|
||||
pthread_mutex_lock(&mLogElementsLock);
|
||||
stats.add(elem);
|
||||
stats.subtract(elem);
|
||||
stats.addTotal(elem);
|
||||
pthread_mutex_unlock(&mLogElementsLock);
|
||||
delete elem;
|
||||
return -EACCES;
|
||||
|
@ -320,8 +319,7 @@ int LogBuffer::log(log_id_t log_id, log_time realtime, uid_t uid, pid_t pid,
|
|||
pthread_mutex_unlock(&mLogElementsLock);
|
||||
return len;
|
||||
}
|
||||
stats.add(currentLast);
|
||||
stats.subtract(currentLast);
|
||||
stats.addTotal(currentLast);
|
||||
delete currentLast;
|
||||
swab = total;
|
||||
event->payload.data = htole32(swab);
|
||||
|
@ -337,8 +335,7 @@ int LogBuffer::log(log_id_t log_id, log_time realtime, uid_t uid, pid_t pid,
|
|||
}
|
||||
}
|
||||
if (count) {
|
||||
stats.add(currentLast);
|
||||
stats.subtract(currentLast);
|
||||
stats.addTotal(currentLast);
|
||||
currentLast->setDropped(count);
|
||||
}
|
||||
droppedElements[log_id] = currentLast;
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <inttypes.h>
|
||||
#include <pwd.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
@ -70,20 +71,30 @@ char* pidToName(pid_t pid) {
|
|||
}
|
||||
}
|
||||
|
||||
void LogStatistics::addTotal(LogBufferElement* element) {
|
||||
if (element->getDropped()) return;
|
||||
|
||||
log_id_t log_id = element->getLogId();
|
||||
unsigned short size = element->getMsgLen();
|
||||
mSizesTotal[log_id] += size;
|
||||
SizesTotal += size;
|
||||
++mElementsTotal[log_id];
|
||||
}
|
||||
|
||||
void LogStatistics::add(LogBufferElement* element) {
|
||||
log_id_t log_id = element->getLogId();
|
||||
unsigned short size = element->getMsgLen();
|
||||
mSizes[log_id] += size;
|
||||
++mElements[log_id];
|
||||
|
||||
// When caller adding a chatty entry, they will have already
|
||||
// called add() and subtract() for each entry as they are
|
||||
// evaluated and trimmed, thus recording size and number of
|
||||
// elements, but we must recognize the manufactured dropped
|
||||
// entry as not contributing to the lifetime totals.
|
||||
if (element->getDropped()) {
|
||||
++mDroppedElements[log_id];
|
||||
} else {
|
||||
// When caller adding a chatty entry, they will have already
|
||||
// called add() and subtract() for each entry as they are
|
||||
// evaluated and trimmed, thus recording size and number of
|
||||
// elements, but we must recognize the manufactured dropped
|
||||
// entry as not contributing to the lifetime totals.
|
||||
mSizesTotal[log_id] += size;
|
||||
SizesTotal += size;
|
||||
++mElementsTotal[log_id];
|
||||
|
|
|
@ -576,6 +576,7 @@ class LogStatistics {
|
|||
enable = true;
|
||||
}
|
||||
|
||||
void addTotal(LogBufferElement* entry);
|
||||
void add(LogBufferElement* entry);
|
||||
void subtract(LogBufferElement* entry);
|
||||
// entry->setDropped(1) must follow this call
|
||||
|
|
Loading…
Reference in a new issue