diff options
author | Greg Clayton <gclayton@apple.com> | 2013-03-23 01:35:50 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2013-03-23 01:35:50 +0000 |
commit | 4a10357fb3ab098de297df5dec4cc329a45fea86 (patch) | |
tree | 3b62fa555afd88875ea85736dac66bf3cfa60186 /lldb/tools/lldb-perf/common/clang/lldb_perf_clang.cpp | |
parent | 7d1f93942ffbd4d36ad2e620618a9fea5b37c808 (diff) | |
download | bcm5719-llvm-4a10357fb3ab098de297df5dec4cc329a45fea86.tar.gz bcm5719-llvm-4a10357fb3ab098de297df5dec4cc329a45fea86.zip |
Added better measurements to test:
- memory delta and time for: target create
- memory delta and time for: setting breakpoint at main by name
- time to launch and hit bp at main
- overall memory of target create + bp main + run to main
- ovarall time of target create + bp main + run to main
llvm-svn: 177808
Diffstat (limited to 'lldb/tools/lldb-perf/common/clang/lldb_perf_clang.cpp')
-rw-r--r-- | lldb/tools/lldb-perf/common/clang/lldb_perf_clang.cpp | 74 |
1 files changed, 46 insertions, 28 deletions
diff --git a/lldb/tools/lldb-perf/common/clang/lldb_perf_clang.cpp b/lldb/tools/lldb-perf/common/clang/lldb_perf_clang.cpp index 20e84520104..c6e8a7f1043 100644 --- a/lldb/tools/lldb-perf/common/clang/lldb_perf_clang.cpp +++ b/lldb/tools/lldb-perf/common/clang/lldb_perf_clang.cpp @@ -25,12 +25,21 @@ class ClangTest : public TestCase public: ClangTest () : TestCase(), - m_set_bp_main_by_name(CreateTimeMeasurement([this] () -> void - { - m_target.BreakpointCreateByName("main"); - }, "breakpoint1-relative-time", "Elapsed time to set a breakpoint at main by name, run and hit the breakpoint.")), - m_delta_memory("breakpoint1-memory-delta", "Memory increase that occurs due to setting a breakpoint at main by name."), - m_total_memory(), + m_time_create_target ([this] () -> void + { + m_memory_change_create_target.Start(); + m_target = m_debugger.CreateTarget(m_exe_path.c_str()); + m_memory_change_create_target.Stop(); + }, "time-create-target", "The time it takes to create a target."), + m_time_set_bp_main([this] () -> void + { + m_memory_change_break_main.Start(); + m_target.BreakpointCreateByName("main"); + m_memory_change_break_main.Stop(); + }, "time-set-break-main", "Elapsed time it takes to set a breakpoint at 'main' by name."), + m_memory_change_create_target(), + m_memory_change_break_main(), + m_memory_total(), m_exe_path(), m_out_path(), m_launch_info (NULL), @@ -64,24 +73,23 @@ public: { case 0: { - m_total_memory.Start(); - printf("creating target...\n"); + m_memory_total.Start(); m_time_total.Start(); - m_time_to_create_target.Start(); - m_target = m_debugger.CreateTarget(m_exe_path.c_str()); - printf("creating target...done\n"); + + // Time creating the target + m_time_create_target(); + + m_time_set_bp_main(); + + m_time_launch_stop_main.Start(); const char *clang_argv[] = { "clang --version", NULL }; - m_delta_memory.Start(); - m_set_bp_main_by_name(); - m_time_to_create_target.Stop(); - m_delta_memory.Stop(); SBLaunchInfo launch_info(clang_argv); - printf("start\n"); Launch (launch_info); } break; case 1: puts("stop"); + m_time_launch_stop_main.Stop(); m_time_total.Stop(); // next_action.StepOver(m_thread); // break; @@ -92,7 +100,7 @@ public: // next_action.StepOver(m_thread); // break; default: - m_total_memory.Stop(); + m_memory_total.Stop(); next_action.Kill(); break; } @@ -103,19 +111,27 @@ public: { Results::Dictionary& results_dict = results.GetDictionary(); - m_set_bp_main_by_name.WriteAverageValue(results); - m_delta_memory.WriteAverageValue(results); + m_time_set_bp_main.WriteAverageValue(results); + results_dict.Add ("memory-change-create-target", + "Memory increase that occurs due to creating the target.", + m_memory_change_create_target.GetDeltaValue().GetResult(NULL, NULL)); + + results_dict.Add ("memory-change-break-main", + "Memory increase that occurs due to setting a breakpoint at main by name.", + m_memory_change_break_main.GetDeltaValue().GetResult(NULL, NULL)); - results_dict.Add ("breakpoint1-memory-total", + m_time_create_target.WriteAverageValue(results); + results_dict.Add ("memory-total-break-main", "The total memory that the current process is using after setting the first breakpoint.", - m_total_memory.GetStopValue().GetResult(NULL, NULL)); + m_memory_total.GetStopValue().GetResult(NULL, NULL)); + results_dict.AddDouble("time-launch-stop-main", + "The time it takes to launch the process and stop at main.", + m_time_launch_stop_main.GetDeltaValue()); + results_dict.AddDouble("time-total", "The time it takes to create the target, set breakpoint at main, launch clang and hit the breakpoint at main.", m_time_total.GetDeltaValue()); - results_dict.AddDouble("time-to-create-target", - "The time it takes to create the clang target.", - m_time_to_create_target.GetDeltaValue()); results.Write(GetResultFilePath()); } @@ -165,10 +181,12 @@ public: private: // C++ formatters - TimeMeasurement<std::function<void()>> m_set_bp_main_by_name; - MemoryMeasurement<std::function<void()>> m_delta_memory; - MemoryGauge m_total_memory; - TimeGauge m_time_to_create_target; + TimeMeasurement<std::function<void()>> m_time_create_target; + TimeMeasurement<std::function<void()>> m_time_set_bp_main; + MemoryGauge m_memory_change_create_target; + MemoryGauge m_memory_change_break_main; + MemoryGauge m_memory_total; + TimeGauge m_time_launch_stop_main; TimeGauge m_time_total; std::string m_exe_path; std::string m_out_path; |