mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-01 10:06:57 +03:00
strchr: Add additional benchmarks and tests
This patch adds additional benchmarks and tests for string size of 4096 and several benchmarks for string size 256 with different alignments.
This commit is contained in:
@ -100,7 +100,7 @@ do_test (size_t align, size_t pos, size_t len, int seek_char, int max_char)
|
|||||||
size_t i;
|
size_t i;
|
||||||
CHAR *result;
|
CHAR *result;
|
||||||
CHAR *buf = (CHAR *) buf1;
|
CHAR *buf = (CHAR *) buf1;
|
||||||
align &= 15;
|
align &= 127;
|
||||||
if ((align + len) * sizeof (CHAR) >= page_size)
|
if ((align + len) * sizeof (CHAR) >= page_size)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -151,12 +151,24 @@ test_main (void)
|
|||||||
do_test (i, 16 << i, 2048, SMALL_CHAR, MIDDLE_CHAR);
|
do_test (i, 16 << i, 2048, SMALL_CHAR, MIDDLE_CHAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 1; i < 8; ++i)
|
||||||
|
{
|
||||||
|
do_test (0, 16 << i, 4096, SMALL_CHAR, MIDDLE_CHAR);
|
||||||
|
do_test (i, 16 << i, 4096, SMALL_CHAR, MIDDLE_CHAR);
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 1; i < 8; ++i)
|
for (i = 1; i < 8; ++i)
|
||||||
{
|
{
|
||||||
do_test (i, 64, 256, SMALL_CHAR, MIDDLE_CHAR);
|
do_test (i, 64, 256, SMALL_CHAR, MIDDLE_CHAR);
|
||||||
do_test (i, 64, 256, SMALL_CHAR, BIG_CHAR);
|
do_test (i, 64, 256, SMALL_CHAR, BIG_CHAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < 8; ++i)
|
||||||
|
{
|
||||||
|
do_test (16 * i, 256, 512, SMALL_CHAR, MIDDLE_CHAR);
|
||||||
|
do_test (16 * i, 256, 512, SMALL_CHAR, BIG_CHAR);
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < 32; ++i)
|
for (i = 0; i < 32; ++i)
|
||||||
{
|
{
|
||||||
do_test (0, i, i + 1, SMALL_CHAR, MIDDLE_CHAR);
|
do_test (0, i, i + 1, SMALL_CHAR, MIDDLE_CHAR);
|
||||||
@ -169,12 +181,24 @@ test_main (void)
|
|||||||
do_test (i, 16 << i, 2048, 0, MIDDLE_CHAR);
|
do_test (i, 16 << i, 2048, 0, MIDDLE_CHAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 1; i < 8; ++i)
|
||||||
|
{
|
||||||
|
do_test (0, 16 << i, 4096, 0, MIDDLE_CHAR);
|
||||||
|
do_test (i, 16 << i, 4096, 0, MIDDLE_CHAR);
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 1; i < 8; ++i)
|
for (i = 1; i < 8; ++i)
|
||||||
{
|
{
|
||||||
do_test (i, 64, 256, 0, MIDDLE_CHAR);
|
do_test (i, 64, 256, 0, MIDDLE_CHAR);
|
||||||
do_test (i, 64, 256, 0, BIG_CHAR);
|
do_test (i, 64, 256, 0, BIG_CHAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < 8; ++i)
|
||||||
|
{
|
||||||
|
do_test (16 * i, 256, 512, 0, MIDDLE_CHAR);
|
||||||
|
do_test (16 * i, 256, 512, 0, BIG_CHAR);
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < 32; ++i)
|
for (i = 0; i < 32; ++i)
|
||||||
{
|
{
|
||||||
do_test (0, i, i + 1, 0, MIDDLE_CHAR);
|
do_test (0, i, i + 1, 0, MIDDLE_CHAR);
|
||||||
|
@ -130,7 +130,7 @@ do_test (size_t align, size_t pos, size_t len, int seek_char, int max_char)
|
|||||||
size_t i;
|
size_t i;
|
||||||
CHAR *result;
|
CHAR *result;
|
||||||
CHAR *buf = (CHAR *) buf1;
|
CHAR *buf = (CHAR *) buf1;
|
||||||
align &= 15;
|
align &= 127;
|
||||||
if ((align + len) * sizeof (CHAR) >= page_size)
|
if ((align + len) * sizeof (CHAR) >= page_size)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -259,12 +259,24 @@ test_main (void)
|
|||||||
do_test (i, 16 << i, 2048, SMALL_CHAR, MIDDLE_CHAR);
|
do_test (i, 16 << i, 2048, SMALL_CHAR, MIDDLE_CHAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 1; i < 8; ++i)
|
||||||
|
{
|
||||||
|
do_test (0, 16 << i, 4096, SMALL_CHAR, MIDDLE_CHAR);
|
||||||
|
do_test (i, 16 << i, 4096, SMALL_CHAR, MIDDLE_CHAR);
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 1; i < 8; ++i)
|
for (i = 1; i < 8; ++i)
|
||||||
{
|
{
|
||||||
do_test (i, 64, 256, SMALL_CHAR, MIDDLE_CHAR);
|
do_test (i, 64, 256, SMALL_CHAR, MIDDLE_CHAR);
|
||||||
do_test (i, 64, 256, SMALL_CHAR, BIG_CHAR);
|
do_test (i, 64, 256, SMALL_CHAR, BIG_CHAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < 8; ++i)
|
||||||
|
{
|
||||||
|
do_test (16 * i, 256, 512, SMALL_CHAR, MIDDLE_CHAR);
|
||||||
|
do_test (16 * i, 256, 512, SMALL_CHAR, BIG_CHAR);
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < 32; ++i)
|
for (i = 0; i < 32; ++i)
|
||||||
{
|
{
|
||||||
do_test (0, i, i + 1, SMALL_CHAR, MIDDLE_CHAR);
|
do_test (0, i, i + 1, SMALL_CHAR, MIDDLE_CHAR);
|
||||||
@ -277,12 +289,24 @@ test_main (void)
|
|||||||
do_test (i, 16 << i, 2048, 0, MIDDLE_CHAR);
|
do_test (i, 16 << i, 2048, 0, MIDDLE_CHAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 1; i < 8; ++i)
|
||||||
|
{
|
||||||
|
do_test (0, 16 << i, 4096, 0, MIDDLE_CHAR);
|
||||||
|
do_test (i, 16 << i, 4096, 0, MIDDLE_CHAR);
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 1; i < 8; ++i)
|
for (i = 1; i < 8; ++i)
|
||||||
{
|
{
|
||||||
do_test (i, 64, 256, 0, MIDDLE_CHAR);
|
do_test (i, 64, 256, 0, MIDDLE_CHAR);
|
||||||
do_test (i, 64, 256, 0, BIG_CHAR);
|
do_test (i, 64, 256, 0, BIG_CHAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < 8; ++i)
|
||||||
|
{
|
||||||
|
do_test (16 * i, 256, 512, 0, MIDDLE_CHAR);
|
||||||
|
do_test (16 * i, 256, 512, 0, BIG_CHAR);
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < 32; ++i)
|
for (i = 0; i < 32; ++i)
|
||||||
{
|
{
|
||||||
do_test (0, i, i + 1, 0, MIDDLE_CHAR);
|
do_test (0, i, i + 1, 0, MIDDLE_CHAR);
|
||||||
|
Reference in New Issue
Block a user