Renamed timer function to now(), added perf unit test

This commit is contained in:
Glen Fraser 2015-05-06 11:37:37 +02:00
parent b818799800
commit bd176cfde2
2 changed files with 17 additions and 6 deletions

View File

@ -249,13 +249,11 @@ void interactive(chaiscript::ChaiScript& chai)
} }
} }
double getTimeInSeconds() double now()
{ {
using namespace std::chrono; using namespace std::chrono;
static time_point<high_resolution_clock> start = high_resolution_clock::now(); auto now = high_resolution_clock::now();
return duration_cast<duration<double>>(now.time_since_epoch()).count();
duration<double> elapsed_seconds = high_resolution_clock::now() - start;
return elapsed_seconds.count();
} }
int main(int argc, char *argv[]) int main(int argc, char *argv[])
@ -297,7 +295,7 @@ int main(int argc, char *argv[])
chai.add(chaiscript::fun(&help), "help"); chai.add(chaiscript::fun(&help), "help");
chai.add(chaiscript::fun(&throws_exception), "throws_exception"); chai.add(chaiscript::fun(&throws_exception), "throws_exception");
chai.add(chaiscript::fun(&get_eval_error), "get_eval_error"); chai.add(chaiscript::fun(&get_eval_error), "get_eval_error");
chai.add(chaiscript::fun(&getTimeInSeconds), "getTimeInSeconds"); chai.add(chaiscript::fun(&now), "now");
for (int i = 0; i < argc; ++i) { for (int i = 0; i < argc; ++i) {

View File

@ -0,0 +1,13 @@
var sum = 0.0
var start = now()
for (var i = 1; i <= 100000; ++i) {
if (i % 2 == 0) {
sum += 1.0 / i;
}
else {
sum += 1.0 / (double(i) * i);
}
}
var end = now()
print("Elapsed time: " + to_string(end - start) + " sum: " + to_string(sum))
assert_equal(to_string(sum), "6.9322")