summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/kernel/perf.hpp
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2012-12-11 03:51:03 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2012-12-11 03:51:03 +0000
commitae0b7c0063db6236be2d7cf01ddbf2159f77c98c (patch)
tree2f64d65d018634b8728623e2ca99514541fab8aa /sca-cpp/trunk/kernel/perf.hpp
parent1f3796522a078dda5906395ba471d151ad694b6b (diff)
Port kernel to C++11 and refactor some of the core modules. Convert functors to lambdas, and add C++ const, noexcept and inline annotations to get more efficient generated code.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1419985 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-cpp/trunk/kernel/perf.hpp')
-rw-r--r--sca-cpp/trunk/kernel/perf.hpp22
1 files changed, 8 insertions, 14 deletions
diff --git a/sca-cpp/trunk/kernel/perf.hpp b/sca-cpp/trunk/kernel/perf.hpp
index 04aad06664..07c586ce7c 100644
--- a/sca-cpp/trunk/kernel/perf.hpp
+++ b/sca-cpp/trunk/kernel/perf.hpp
@@ -37,21 +37,15 @@ namespace tuscany
/**
* Measure the time required to perform a function in msec.
*/
-struct timeLambda {
- const lambda<bool()> f;
- timeLambda(const lambda<bool()>& f) : f(f) {
- }
- bool operator()(const long count) const {
+inline const double time(const blambda& f, const long warmup, const long count) {
+ struct timeval start;
+ struct timeval end;
+
+ const lambda<const bool(const long)> tl = [f](const long count) -> const bool {
for (long i = 0; i < count; i++)
f();
return true;
- }
-};
-
-const double time(const lambda<bool()>& f, const long warmup, const long count) {
- const lambda<bool(long)> tl = timeLambda(f);
- struct timeval start;
- struct timeval end;
+ };
tl(warmup);
gettimeofday(&start, NULL);
@@ -62,13 +56,13 @@ const double time(const lambda<bool()>& f, const long warmup, const long count)
return (double)t / (double)count;
}
-const unsigned long timems() {
+inline const unsigned long timems() {
struct timeval t;
gettimeofday(&t, NULL);
return (unsigned long)(t.tv_sec * 1000 + t.tv_usec / 1000);
}
-const unsigned long timens() {
+inline const unsigned long timens() {
struct timeval t;
gettimeofday(&t, NULL);
return (unsigned long)(t.tv_sec * 1000000000 + t.tv_usec * 1000);