From e03b7da0566e855914d37f6ff4668cab0f7dea3e Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Sat, 18 May 2019 12:16:19 -0700 Subject: [PATCH] Google format --- .clang-format | 151 ++++++++++++++++++++++++++++++++++++++++++++++++ example_loop.cc | 26 ++++----- usage.cc | 91 ++++++++++++++++------------- usage.h | 36 ++++++------ 4 files changed, 232 insertions(+), 72 deletions(-) create mode 100644 .clang-format diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..3c316f8 --- /dev/null +++ b/.clang-format @@ -0,0 +1,151 @@ +--- +Language: Cpp +# BasedOnStyle: Google +AccessModifierOffset: -1 +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: false +AlignEscapedNewlines: Left +AlignOperands: true +AlignTrailingComments: true +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: All +AllowShortIfStatementsOnASingleLine: true +AllowShortLoopsOnASingleLine: true +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: true +AlwaysBreakTemplateDeclarations: Yes +BinPackArguments: true +BinPackParameters: true +BraceWrapping: + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterFunction: false + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + AfterExternBlock: false + BeforeCatch: false + BeforeElse: false + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + SplitEmptyNamespace: true +BreakBeforeBinaryOperators: None +BreakBeforeBraces: Attach +BreakBeforeInheritanceComma: false +BreakInheritanceList: BeforeColon +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: false +BreakConstructorInitializers: BeforeColon +BreakAfterJavaFieldAnnotations: false +BreakStringLiterals: true +ColumnLimit: 80 +CommentPragmas: '^ IWYU pragma:' +CompactNamespaces: false +ConstructorInitializerAllOnOneLineOrOnePerLine: true +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DerivePointerAlignment: true +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: true +ForEachMacros: + - foreach + - Q_FOREACH + - BOOST_FOREACH +IncludeBlocks: Preserve +IncludeCategories: + - Regex: '^' + Priority: 2 + - Regex: '^<.*\.h>' + Priority: 1 + - Regex: '^<.*' + Priority: 2 + - Regex: '.*' + Priority: 3 +IncludeIsMainRegex: '([-_](test|unittest))?$' +IndentCaseLabels: true +IndentPPDirectives: None +IndentWidth: 2 +IndentWrappedFunctionNames: false +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: false +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCBinPackProtocolList: Never +ObjCBlockIndentWidth: 2 +ObjCSpaceAfterProperty: false +ObjCSpaceBeforeProtocolList: true +PenaltyBreakAssignment: 2 +PenaltyBreakBeforeFirstCallParameter: 1 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyBreakTemplateDeclaration: 10 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 200 +PointerAlignment: Left +RawStringFormats: + - Language: Cpp + Delimiters: + - cc + - CC + - cpp + - Cpp + - CPP + - 'c++' + - 'C++' + CanonicalDelimiter: '' + BasedOnStyle: google + - Language: TextProto + Delimiters: + - pb + - PB + - proto + - PROTO + EnclosingFunctions: + - EqualsProto + - EquivToProto + - PARSE_PARTIAL_TEXT_PROTO + - PARSE_TEST_PROTO + - PARSE_TEXT_PROTO + - ParseTextOrDie + - ParseTextProtoOrDie + CanonicalDelimiter: '' + BasedOnStyle: google +ReflowComments: true +SortIncludes: true +SortUsingDeclarations: true +SpaceAfterCStyleCast: false +SpaceAfterTemplateKeyword: true +SpaceBeforeAssignmentOperators: true +SpaceBeforeCpp11BracedList: false +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeParens: ControlStatements +SpaceBeforeRangeBasedForLoopColon: true +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 2 +SpacesInAngles: false +SpacesInContainerLiterals: true +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Auto +StatementMacros: + - Q_UNUSED + - QT_REQUIRE_VERSION +TabWidth: 8 +UseTab: Never +... + diff --git a/example_loop.cc b/example_loop.cc index 48bb949..7e03021 100644 --- a/example_loop.cc +++ b/example_loop.cc @@ -4,19 +4,19 @@ #include "usage.h" int main(int argc, char *argv[]) { - google::InitGoogleLogging(argv[0]); - gflags::ParseCommandLineFlags(&argc, &argv, true); + google::InitGoogleLogging(argv[0]); + gflags::ParseCommandLineFlags(&argc, &argv, true); - fireusage::UsageTracker tracker; - tracker.Start(); - for (int i = 0; i < 100000000; ++i) { - tracker.AddEvent(); - for (int _ = 0; _ < 100000; ++_) { - } - } - tracker.Stop(); - tracker.Log(); + fireusage::UsageTracker tracker; + tracker.Start(); + for (int i = 0; i < 100000000; ++i) { + tracker.AddEvent(); + for (int _ = 0; _ < 100000; ++_) { + } + } + tracker.Stop(); + tracker.Log(); - gflags::ShutDownCommandLineFlags(); - google::ShutdownGoogleLogging(); + gflags::ShutDownCommandLineFlags(); + google::ShutdownGoogleLogging(); } diff --git a/usage.cc b/usage.cc index 5aae8ef..c57796e 100644 --- a/usage.cc +++ b/usage.cc @@ -8,63 +8,72 @@ namespace fireusage { namespace { std::chrono::nanoseconds TvToNs(const timeval& tv) { - return std::chrono::seconds(tv.tv_sec) + std::chrono::microseconds(tv.tv_usec); - + return std::chrono::seconds(tv.tv_sec) + + std::chrono::microseconds(tv.tv_usec); } -} // namespace +} // namespace -void UsageTracker::AddEvents(uint64_t num) { - events_ += num; -} +void UsageTracker::AddEvents(uint64_t num) { events_ += num; } -void UsageTracker::AddEvent() { - events_ += 1; -} +void UsageTracker::AddEvent() { events_ += 1; } void UsageTracker::Start() { - CHECK(!running_); - running_ = true; + CHECK(!running_); + running_ = true; - PCHECK(getrusage(RUSAGE_THREAD, &start_usage_) == 0); - start_time_ = std::chrono::steady_clock::now(); + PCHECK(getrusage(RUSAGE_THREAD, &start_usage_) == 0); + start_time_ = std::chrono::steady_clock::now(); } void UsageTracker::Stop() { - CHECK(running_); - running_ = false; + CHECK(running_); + running_ = false; - const auto end_time = std::chrono::steady_clock::now(); + const auto end_time = std::chrono::steady_clock::now(); - rusage end_usage; - PCHECK(getrusage(RUSAGE_THREAD, &end_usage) == 0); + rusage end_usage; + PCHECK(getrusage(RUSAGE_THREAD, &end_usage) == 0); - wall_time_ += end_time - start_time_; - user_time_ += TvToNs(end_usage.ru_utime) - TvToNs(start_usage_.ru_utime); - sys_time_ += TvToNs(end_usage.ru_stime) - TvToNs(start_usage_.ru_stime); - vol_ctxt_sw_ += end_usage.ru_nvcsw - start_usage_.ru_nvcsw; - invol_ctxt_sw_ += end_usage.ru_nivcsw - start_usage_.ru_nivcsw; + wall_time_ += end_time - start_time_; + user_time_ += TvToNs(end_usage.ru_utime) - TvToNs(start_usage_.ru_utime); + sys_time_ += TvToNs(end_usage.ru_stime) - TvToNs(start_usage_.ru_stime); + vol_ctxt_sw_ += end_usage.ru_nvcsw - start_usage_.ru_nvcsw; + invol_ctxt_sw_ += end_usage.ru_nivcsw - start_usage_.ru_nivcsw; } void UsageTracker::Log(const std::string_view& title) { - if (!title.empty()) { - // Need to do this here so --vmodule works properly - VLOG(1) << title << ":"; - } + if (!title.empty()) { + // Need to do this here so --vmodule works properly + VLOG(1) << title << ":"; + } - VLOG(1) << "\t events: " << std::setw(19) << std::setfill(' ') << events_; - VLOG(1) << "\t wall time: " << std::setw(19) << std::setfill(' ') << wall_time_.count() << "ns"; - VLOG(1) << "\t user time: " << std::setw(19) << std::setfill(' ') << user_time_.count() << "ns (" << ((user_time_ * 100) / (user_time_ + sys_time_)) << "%)"; - VLOG(1) << "\t sys time: " << std::setw(19) << std::setfill(' ') << sys_time_.count() << "ns (" << ((sys_time_ * 100) / (user_time_ + sys_time_)) << "%)"; - VLOG(1) << "\t vol ctxt sw: " << std::setw(19) << std::setfill(' ') << vol_ctxt_sw_; - VLOG(1) << "\t invol ctxt sw: " << std::setw(19) << std::setfill(' ') << invol_ctxt_sw_; - if (events_) { - VLOG(1) << "\t wall time / event: " << std::setw(19) << std::setfill(' ') << (wall_time_ / events_).count() << "ns"; - VLOG(1) << "\t user time / event: " << std::setw(19) << std::setfill(' ') << (user_time_ / events_).count() << "ns"; - VLOG(1) << "\t sys time / event: " << std::setw(19) << std::setfill(' ') << (sys_time_ / events_).count() << "ns"; - VLOG(1) << "\t vol ctxt sw / event: " << std::setw(19) << std::setfill(' ') << (vol_ctxt_sw_ / events_); - VLOG(1) << "\tinvol ctxt sw / event: " << std::setw(19) << std::setfill(' ') << (invol_ctxt_sw_ / events_); - } + VLOG(1) << "\t events: " << std::setw(19) << std::setfill(' ') + << events_; + VLOG(1) << "\t wall time: " << std::setw(19) << std::setfill(' ') + << wall_time_.count() << "ns"; + VLOG(1) << "\t user time: " << std::setw(19) << std::setfill(' ') + << user_time_.count() << "ns (" + << ((user_time_ * 100) / (user_time_ + sys_time_)) << "%)"; + VLOG(1) << "\t sys time: " << std::setw(19) << std::setfill(' ') + << sys_time_.count() << "ns (" + << ((sys_time_ * 100) / (user_time_ + sys_time_)) << "%)"; + VLOG(1) << "\t vol ctxt sw: " << std::setw(19) << std::setfill(' ') + << vol_ctxt_sw_; + VLOG(1) << "\t invol ctxt sw: " << std::setw(19) << std::setfill(' ') + << invol_ctxt_sw_; + if (events_) { + VLOG(1) << "\t wall time / event: " << std::setw(19) << std::setfill(' ') + << (wall_time_ / events_).count() << "ns"; + VLOG(1) << "\t user time / event: " << std::setw(19) << std::setfill(' ') + << (user_time_ / events_).count() << "ns"; + VLOG(1) << "\t sys time / event: " << std::setw(19) << std::setfill(' ') + << (sys_time_ / events_).count() << "ns"; + VLOG(1) << "\t vol ctxt sw / event: " << std::setw(19) << std::setfill(' ') + << (vol_ctxt_sw_ / events_); + VLOG(1) << "\tinvol ctxt sw / event: " << std::setw(19) << std::setfill(' ') + << (invol_ctxt_sw_ / events_); + } } -} // namespace fireusage +} // namespace fireusage diff --git a/usage.h b/usage.h index db0892c..501f58a 100644 --- a/usage.h +++ b/usage.h @@ -1,31 +1,31 @@ #pragma once +#include #include #include -#include namespace fireusage { class UsageTracker { - public: - void AddEvents(uint64_t num); - void AddEvent(); + public: + void AddEvents(uint64_t num); + void AddEvent(); - void Start(); - void Stop(); - void Log(const std::string_view& title=""); + void Start(); + void Stop(); + void Log(const std::string_view& title = ""); - private: - bool running_ = false; - uint64_t events_ = 0; - std::chrono::nanoseconds wall_time_; - std::chrono::nanoseconds user_time_; - std::chrono::nanoseconds sys_time_; - uint64_t vol_ctxt_sw_ = 0; - uint64_t invol_ctxt_sw_ = 0; + private: + bool running_ = false; + uint64_t events_ = 0; + std::chrono::nanoseconds wall_time_; + std::chrono::nanoseconds user_time_; + std::chrono::nanoseconds sys_time_; + uint64_t vol_ctxt_sw_ = 0; + uint64_t invol_ctxt_sw_ = 0; - std::chrono::steady_clock::time_point start_time_; - rusage start_usage_; + std::chrono::steady_clock::time_point start_time_; + rusage start_usage_; }; -} // namespace fireusage +} // namespace fireusage