From: Václav Slavík Date: Mon, 11 Aug 2008 19:31:23 +0000 (+0000) Subject: added microbenchmark for wxCharBuffer performance X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/0654c03aff48601f9d18b05a6aabec45aa9bb4c9 added microbenchmark for wxCharBuffer performance git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55061 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/tests/benchmarks/strings.cpp b/tests/benchmarks/strings.cpp index 5da127174c..1fc1b7d38e 100644 --- a/tests/benchmarks/strings.cpp +++ b/tests/benchmarks/strings.cpp @@ -226,12 +226,12 @@ BENCHMARK_FUNC(ForStringRIter) // wxString::Replace() // ---------------------------------------------------------------------------- -const size_t REPLACE_STR_LEN = strlen(asciistr); +const size_t ASCIISTR_LEN = strlen(asciistr); BENCHMARK_FUNC(ReplaceLoop) { - wxString str('x', REPLACE_STR_LEN); - for ( size_t n = 0; n < REPLACE_STR_LEN; n++ ) + wxString str('x', ASCIISTR_LEN); + for ( size_t n = 0; n < ASCIISTR_LEN; n++ ) { if ( str[n] == 'a' ) str[n] = 'z'; @@ -242,7 +242,7 @@ BENCHMARK_FUNC(ReplaceLoop) BENCHMARK_FUNC(ReplaceNone) { - wxString str('x', REPLACE_STR_LEN); + wxString str('x', ASCIISTR_LEN); return str.Replace("a", "z") == 0; } @@ -254,7 +254,22 @@ BENCHMARK_FUNC(ReplaceSome) BENCHMARK_FUNC(ReplaceAll) { - wxString str('x', REPLACE_STR_LEN); + wxString str('x', ASCIISTR_LEN); return str.Replace("x", "y") != 0; } + +// ---------------------------------------------------------------------------- +// string buffers: wx[W]CharBuffer +// ---------------------------------------------------------------------------- + +BENCHMARK_FUNC(CharBuffer) +{ + wxString str(asciistr); + + // NB: wxStrlen() is here to simulate some use of the returned buffer. + // Both mb_str() and wc_str() are used so that this code does something + // nontrivial in any build. + return wxStrlen(str.mb_str()) == ASCIISTR_LEN && + wxStrlen(str.wc_str()) == ASCIISTR_LEN; +}