From c8e6498f53c93a51c4e1b69491ddfbdb464267e0 Mon Sep 17 00:00:00 2001 From: cryptozoidberg Date: Fri, 20 Sep 2019 19:24:33 +0200 Subject: [PATCH] improvements over derivation performance test --- .../generate_key_derivation.h | 26 ++++++++++++++++--- tests/performance_tests/main.cpp | 2 +- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/tests/performance_tests/generate_key_derivation.h b/tests/performance_tests/generate_key_derivation.h index 0d5af6f6..65d0d7cb 100644 --- a/tests/performance_tests/generate_key_derivation.h +++ b/tests/performance_tests/generate_key_derivation.h @@ -9,15 +9,35 @@ #include "single_tx_test_base.h" +uint64_t g_antioptimisation = 0; + class test_generate_key_derivation : public single_tx_test_base { public: - static const size_t loop_count = 1000; + static const size_t loop_count = 1; + std::list accounts; + + bool init() + { + + for (size_t i = 0; i != 10000; i++) + { + accounts.push_back(currency::account_base()); + accounts.back().generate(); + } + + return single_tx_test_base::init(); + } bool test() { - crypto::key_derivation recv_derivation; - crypto::generate_key_derivation(m_tx_pub_key, m_bob.get_keys().m_view_secret_key, recv_derivation); + for (auto &a : accounts) + { + crypto::key_derivation recv_derivation = AUTO_VAL_INIT(recv_derivation); + crypto::generate_key_derivation(m_tx_pub_key, a.get_keys().m_view_secret_key, recv_derivation); + g_antioptimisation ^= *(uint64_t*)(&recv_derivation); + } + return true; } }; diff --git a/tests/performance_tests/main.cpp b/tests/performance_tests/main.cpp index 37591d6a..7e9831a6 100644 --- a/tests/performance_tests/main.cpp +++ b/tests/performance_tests/main.cpp @@ -68,7 +68,7 @@ int main(int argc, char** argv) */ //TEST_PERFORMANCE0(test_is_out_to_acc); //TEST_PERFORMANCE0(test_generate_key_image_helper); - //TEST_PERFORMANCE0(test_generate_key_derivation); + TEST_PERFORMANCE0(test_generate_key_derivation); //TEST_PERFORMANCE0(test_generate_key_image); //TEST_PERFORMANCE0(test_derive_public_key); //TEST_PERFORMANCE0(test_derive_secret_key);