diff options
author | Yabin Cui <yabinc@google.com> | 2018-06-18 17:44:27 -0700 |
---|---|---|
committer | Yabin Cui <yabinc@google.com> | 2018-06-18 17:51:01 -0700 |
commit | 8b5a352cbfd70935eeeae507e165018812f18991 (patch) | |
tree | af5cf06db56e3f4aa9f86f330d6e7e80380cded6 /simpleperf/record_file_reader.cpp | |
parent | 9e00d29710a22146f7a2a525807540c7a6a0bbd3 (diff) | |
download | extras-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.cpp | 24 |
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; } |