From 26aa05fccc206bddd05c004cc89f7a7d1f46eab3 Mon Sep 17 00:00:00 2001 From: Daniel Sipka Date: Fri, 24 Apr 2015 01:37:31 +0200 Subject: [PATCH] benchmark --- test/benchmark_main.cpp | 48 ++++++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/test/benchmark_main.cpp b/test/benchmark_main.cpp index 550670d..412581b 100644 --- a/test/benchmark_main.cpp +++ b/test/benchmark_main.cpp @@ -1,18 +1,42 @@ +#include "mstch/mstch.hpp" + +#include #include -#include +unsigned long current_msec() { + return std::chrono::system_clock::now().time_since_epoch() / + std::chrono::milliseconds(1); +} int main() { - std::string view{"{{#names}}Hi {{name}}!\n{{/names}}"}; - mstch::map context{ - {"names", mstch::array{ - mstch::map{{"name", std::string{"Chris"}}}, - mstch::map{{"name", std::string{"Mark"}}}, - mstch::map{{"name", std::string{"Scott"}}}, - }} - }; + std::string comment_tmp{ + "

{{header}}

    " + "{{#comments}}
  • {{name}}
    " + "

    {{body}}

  • {{/comments}}
"}; - std::cout << mstch::render(view, context) << std::endl; + auto comment_view = mstch::map{ + {"header", std::string{"My Post Comments"}}, + {"comments", mstch::array{ + mstch::map{{"name", std::string{"Joe"}}, {"body", std::string{"Thanks for this post!"}}}, + mstch::map{{"name", std::string{"Sam"}}, {"body", std::string{"Thanks for this post!"}}}, + mstch::map{{"name", std::string{"Heather"}}, {"body", std::string{"Thanks for this post!"}}}, + mstch::map{{"name", std::string{"Kathy"}}, {"body", std::string{"Thanks for this post!"}}}, + mstch::map{{"name", std::string{"George"}}, {"body", std::string{"Thanks for this post!"}}}}}}; - return 0; - } \ No newline at end of file + std::vector times; + for (int j = 0; j < 10; j++) { + unsigned long start = current_msec(); + for (int i = 0; i < 5000; i++) + mstch::render(comment_tmp, comment_view); + times.push_back(current_msec() - start); + } + + float avg = 0; + for (auto i: times) + avg += i; + avg /= times.size(); + + std::cout << avg << std::endl; + + return 0; +}