From 770410dcf2f72cf4e806442263e63719a0be0f5a Mon Sep 17 00:00:00 2001 From: Felipe Leme Date: Tue, 26 Jan 2016 17:07:14 -0800 Subject: [PATCH] Fixed performance issue by moving buffer allocation outside loop. Also improved logging. BUG: 26637170 BUG: 26777547 Change-Id: I99511f3f71c58eba1f5539508f9a685d0a58cc58 --- cmds/dumpstate/dumpstate.cpp | 6 ++++-- cmds/dumpstate/utils.cpp | 1 - 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/cmds/dumpstate/dumpstate.cpp b/cmds/dumpstate/dumpstate.cpp index 933f7fae85..513e295a71 100644 --- a/cmds/dumpstate/dumpstate.cpp +++ b/cmds/dumpstate/dumpstate.cpp @@ -357,6 +357,8 @@ static void print_header() { /* adds a new entry to the existing zip file. */ static bool add_zip_entry_from_fd(const std::string& entry_name, int fd) { + DurationReporter duration_reporter(("ADD ZIP ENTRY " + entry_name).c_str()); + ALOGD("Adding zip entry %s", entry_name.c_str()); int32_t err = zip_writer->StartEntryWithTime(entry_name.c_str(), ZipWriter::kCompress, get_mtime(fd, now)); if (err) { @@ -364,8 +366,8 @@ static bool add_zip_entry_from_fd(const std::string& entry_name, int fd) { return false; } + std::vector buffer(65536); while (1) { - std::vector buffer(65536); ssize_t bytes_read = TEMP_FAILURE_RETRY(read(fd, buffer.data(), sizeof(buffer))); if (bytes_read == 0) { break; @@ -413,7 +415,7 @@ void add_dir(const char *dir, bool recursive) { } static void dumpstate(const std::string& screenshot_path) { - std::unique_ptr duration_reporter(new DurationReporter("DUMPSTATE")); + DurationReporter duration_reporter("DUMPSTATE"); unsigned long timeout; dump_dev_files("TRUSTY VERSION", "/sys/bus/platform/drivers/trusty", "trusty_version"); diff --git a/cmds/dumpstate/utils.cpp b/cmds/dumpstate/utils.cpp index e49d766f1e..c043adc858 100644 --- a/cmds/dumpstate/utils.cpp +++ b/cmds/dumpstate/utils.cpp @@ -566,7 +566,6 @@ int run_command_always(const char *title, int timeout_seconds, const char *args[ } else if (WIFEXITED(status) && WEXITSTATUS(status) > 0) { printf("*** %s: Exit code %d\n", command, WEXITSTATUS(status)); } - if (title) printf("[%s: %.3fs elapsed]\n\n", command, (float)elapsed / NANOS_PER_SEC); if (weight > 0) { update_progress(weight); -- 2.11.0