diff --git a/c/zalloc_ext/std_string_speed_test.cpp b/c/zalloc_ext/std_string_speed_test.cpp index 987d3e6..0641706 100644 --- a/c/zalloc_ext/std_string_speed_test.cpp +++ b/c/zalloc_ext/std_string_speed_test.cpp @@ -9,6 +9,8 @@ //~ во всех тестах zrealloc показала наилучшие результаты :), приблизительно в 1.5 раза быстрее xrealloc() и realloc(). //~ std::string не у дел :( +// при сильной накрузке и использовании swap std::string в разы проигрывает из-за дефрагментации + #include #include #include @@ -34,9 +36,9 @@ int main(int argc, char *argv[]) idx = (size_t)(rand() % (int)nobj); try { //v[idx] += v[idx];//app; - v[idx].resize(i); - //for (j = 0; j < i; j++) - // v[idx] += ' '; + //v[idx].resize(i); + for (j = 0; j < i; j++) + v[idx] += ' '; } catch(...) { fprintf(stderr, "Alloc error at i = %lu\n", i); exit(-1); diff --git a/c/zalloc_ext/zalloc_speed_test_c.c b/c/zalloc_ext/zalloc_speed_test_c.c index ac361af..cc76ca3 100644 --- a/c/zalloc_ext/zalloc_speed_test_c.c +++ b/c/zalloc_ext/zalloc_speed_test_c.c @@ -5,6 +5,8 @@ //~ user 0m0.130s //~ sys 0m0.160s +// при сильной накрузке и использовании swap std::string в разы проигрывает из-за дефрагментации + #include #include #include @@ -33,9 +35,9 @@ int main(int argc, char *argv[]) for (i = 0; i < iterations; i++) { idx = (size_t)(rand() % (int)nobj); //p[idx] = zalloc_append(p[idx], p[idx]); - zrealloc_inplace(&p[idx], i); - //for (j = 0; j < i; j++) - // p[idx] = zalloc_append8(p[idx], ' '); + //zrealloc_inplace(&p[idx], i); + for (j = 0; j < i; j++) + p[idx] = zalloc_append8(p[idx], ' '); } for (i = 0; i < nobj; i++)