History log of /external/lldb/tools/lldb-perf/lib/Metric.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ec87e5c098f1ce1c9182d1c5438e0beca0996597 15-Apr-2013 Enrico Granata <egranata@apple.com> Enabling test case to write the average+stddev pair to the results
The sketch test case writes avg+stddev for all its metrics:
<key>fetch-frames</key>
<dict>
<key>description</key>
<string>time to dump backtrace for every frame in every thread</string>
<key>stddev</key>
<real>0.006270938361432314</real>
<key>value</key>
<real>0.011568079851851851</real>
</dict>


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/tools/lldb-perf/lib/Metric.h
08257e457b2aab6453618cb64c033e5a64115da1 02-Apr-2013 Enrico Granata <egranata@apple.com> Enabling metrics to calculate (and dump) their standard deviation

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/tools/lldb-perf/lib/Metric.h
d2c50b1793f69af4d09b5ba364dc0a1a88ec26f5 22-Mar-2013 Greg Clayton <gclayton@apple.com> More cleanup to remove the CoreFoundation classes out of mainstream code (CFCMutableDictionary, CFCMutableArray, CFCString, etc). Now it is only used in the Results.cpp file for Apple builds only.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/tools/lldb-perf/lib/Metric.h
9de4dec874148d30cc1d4c498d38cd048a8164ca 22-Mar-2013 Greg Clayton <gclayton@apple.com> Much more cleanup on the performance testing infrastructure:
- Added new abtract Results class to keep CoreFoundation out of the tests. There are many subclasses for different settings:
Results::Result::Dictionary
Results::Result::Array
Results::Result::Unsigned
Results::Result::Double
Results::Result::String
- Gauge<T> can now write themselves out via a templatized write to results function:
template <class T>
Results::ResultSP GetResult (const char *description, T value);

- There are four specializations of this so far:
template <>
Results::ResultSP GetResult (const char *description, double value);

template <>
Results::ResultSP GetResult (const char *description, uint64_t value);

template <>
Results::ResultSP GetResult (const char *description, std::string value);

template <>
Results::ResultSP GetResult (const char *description, MemoryStats value);
- Don't emit the virtual memory reading from the task info call as it really doesn't mean much as it includes way too much (shared cache + other stuff we don't have control over)
- Fixed other test cases to build correctly and use the new classes



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/tools/lldb-perf/lib/Metric.h
d3a8d6565ff40fd99533f50a085ace806a9300ee 21-Mar-2013 Greg Clayton <gclayton@apple.com> Add correct file headers to all source files.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/tools/lldb-perf/lib/Metric.h
75fc5a74d95804e2ddc87bcade177640521147e0 21-Mar-2013 Greg Clayton <gclayton@apple.com> Modify code to adhere to LLDB coding conventions.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/tools/lldb-perf/lib/Metric.h
53bba61c0b9f3b3ceff5835f79d61efa0d81847c 20-Mar-2013 Enrico Granata <egranata@apple.com> Making MemoryGauge work by fixing a Mach API call mistake - saving (and dumping) more information out of the task_info call

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/tools/lldb-perf/lib/Metric.h
af222500aa2ce2b18149277e561cdf75f2115df2 18-Mar-2013 Greg Clayton <gclayton@apple.com> Code cleanup:
- don't use preprocessor macros
- use switch statements
- don't put anything in the lldb namespace, use "lldb_perf" namespace.
- Pass the action struct into each TestStep() for each step fill in
- Modify the ActionWanted class to have accessors to make the continue, next, finish, kill instead of using preproc macros



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177332 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/tools/lldb-perf/lib/Metric.h
c50fc4b658c46ef43b1add131391ecdd1f9bd752 14-Mar-2013 Enrico Granata <egranata@apple.com> <rdar://problem/13228487>

A test case for the performance of some LLDB formatters
Changes and improvements to the testing infrastructure itself



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/tools/lldb-perf/lib/Metric.h
f5af85a2946ed4e1ff4766829d328cfb4961f259 08-Mar-2013 Enrico Granata <egranata@apple.com> Initial checkin of a new project: LLDB Performance Testing Infrastructure

This is a very basic implementation of a library that easily allows to drive LLDB.framework to write test cases for performance

This is separate from the LLDB testsuite in test/ in that:
a) this uses C++ instead of Python to avoid measures being affected by SWIG
b) this is in very early development and needs lots of tweaking before it can be considered functionally complete
c) this is not meant to test correctness but to help catch performance regressions

There is a sample application built against the library (in darwin/sketch) that uses the famous sample app Sketch as an inferior to measure certain basic parameters of LLDB's behavior.
The resulting output is a PLIST much like the following:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>fetch-frames</key>
<real>0.13161715522222225</real>
</dict>
<dict>
<key>file-line-bkpt</key>
<real>0.029111678750000002</real>
</dict>
<dict>
<key>fetch-modules</key>
<real>0.00026376766666666668</real>
</dict>
<dict>
<key>fetch-vars</key>
<real>0.17820429311111111</real>
</dict>
<dict>
<key>run-expr</key>
<real>0.029676525769230768</real>
</dict>
</array>
</plist>

Areas for improvement:
- code cleanups (I will be out of the office for a couple days this coming week, but please keep ideas coming!)
- more metrics and test cases
- better error checking

This toolkit also comprises a simple event-loop-driven controller for LLDB, similar yet much simpler to what the Driver does to implement the lldb command-line tool.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/tools/lldb-perf/lib/Metric.h