summaryrefslogtreecommitdiff
path: root/simpleperf/record_file_reader.cpp
diff options
context:
space:
mode:
authorYabin Cui <yabinc@google.com>2018-06-18 17:44:27 -0700
committerYabin Cui <yabinc@google.com>2018-06-18 17:51:01 -0700
commit8b5a352cbfd70935eeeae507e165018812f18991 (patch)
treeaf5cf06db56e3f4aa9f86f330d6e7e80380cded6 /simpleperf/record_file_reader.cpp
parent9e00d29710a22146f7a2a525807540c7a6a0bbd3 (diff)
downloadextras-8b5a352cbfd70935eeeae507e165018812f18991.tar.gz
simpleperf: remove RecordCache.
When using debug-unwind cmd for system wide profiling result, I found it might took a lot of memory because RecordCache cached too many samples. Since simpleperf no longer relies on RecordCache to sort records, I think it is fine to remove RecordCache instead of fixing it. Bug: none. Test: run simpleperf_unit_test. Change-Id: Ie28ce17b4158add455004a56bbdac745f9d05f19
Diffstat (limited to 'simpleperf/record_file_reader.cpp')
-rw-r--r--simpleperf/record_file_reader.cpp24
1 files changed, 4 insertions, 20 deletions
diff --git a/simpleperf/record_file_reader.cpp b/simpleperf/record_file_reader.cpp
index 9b68c654..46b72665 100644
--- a/simpleperf/record_file_reader.cpp
+++ b/simpleperf/record_file_reader.cpp
@@ -206,9 +206,9 @@ bool RecordFileReader::ReadIdsForAttr(const FileAttr& attr, std::vector<uint64_t
}
bool RecordFileReader::ReadDataSection(
- const std::function<bool(std::unique_ptr<Record>)>& callback, bool sorted) {
+ const std::function<bool(std::unique_ptr<Record>)>& callback) {
std::unique_ptr<Record> record;
- while (ReadRecord(record, sorted)) {
+ while (ReadRecord(record)) {
if (record == nullptr) {
return true;
}
@@ -219,24 +219,15 @@ bool RecordFileReader::ReadDataSection(
return false;
}
-bool RecordFileReader::ReadRecord(std::unique_ptr<Record>& record,
- bool sorted) {
+bool RecordFileReader::ReadRecord(std::unique_ptr<Record>& record) {
if (read_record_size_ == 0) {
if (fseek(record_fp_, header_.data.offset, SEEK_SET) != 0) {
PLOG(ERROR) << "fseek() failed";
return false;
}
- bool has_timestamp = true;
- for (const auto& attr : file_attrs_) {
- if (!IsTimestampSupported(attr.attr)) {
- has_timestamp = false;
- break;
- }
- }
- record_cache_.reset(new RecordCache(has_timestamp));
}
record = nullptr;
- while (read_record_size_ < header_.data.size && record == nullptr) {
+ if (read_record_size_ < header_.data.size) {
record = ReadRecord(&read_record_size_);
if (record == nullptr) {
return false;
@@ -258,13 +249,6 @@ bool RecordFileReader::ReadRecord(std::unique_ptr<Record>& record,
r->callchain_data.ip_nr = i;
}
}
- if (sorted) {
- record_cache_->Push(std::move(record));
- record = record_cache_->Pop();
- }
- }
- if (record == nullptr) {
- record = record_cache_->ForcedPop();
}
return true;
}