Files
Konstantin Bogdanov a3c05bb65f Size the number formatting performance tests by the reference side
The performance harness runs every query on the reference server too, and
allows any single run at most two seconds; a run over fifteen seconds
aborts the whole test. The `Decimal256` queries were sized by how long
they take with this change, not by how long they take without it, and
the reference needs 7.5 to 25 us per row there against 0.26 us per row
here. Query 7 of `decimal_to_string` therefore took over sixteen seconds
on the reference and killed the test with `Timeout exceeded`, so the
whole test reported no results at all.

Bring the row counts down until the reference side fits the budget, and
record what the counts are for so that they are not raised back. Every
query in both tests now runs in at most 0.6 s on the reference.

Report: https://s3.amazonaws.com/clickhouse-test-reports/json.html?PR=112457&sha=4405b5c2a3787dc0a7c65c81e926e8da0b293234&name_0=PR&name_1=Performance%20Comparison%20%28amd_release%2C%20master_head%2C%201%2F6%29
PR: https://github.com/ClickHouse/ClickHouse/pull/112457
2026-07-30 13:24:28 +02:00

18 lines
1.3 KiB
XML

<test>
<!-- Conversion of 64-bit integers to text, over the digit-count distributions that occur in
practice: identifiers and hashes over the whole range, timestamps, row numbers and small
enumeration-like values. -->
<query>SELECT count() FROM zeros(50000000) WHERE NOT ignore(toString(rand64())) SETTINGS max_threads = 1</query>
<query>SELECT count() FROM zeros(50000000) WHERE NOT ignore(toString(reinterpret(rand64(), 'Int64'))) SETTINGS max_threads = 1</query>
<query>SELECT count() FROM zeros(50000000) WHERE NOT ignore(toString(1700000000 + rand() % 100000000)) SETTINGS max_threads = 1</query>
<query>SELECT count() FROM numbers(50000000) WHERE NOT ignore(toString(number)) SETTINGS max_threads = 1</query>
<query>SELECT count() FROM zeros(50000000) WHERE NOT ignore(toString(rand64() % 1000)) SETTINGS max_threads = 1</query>
<!-- A value of a different length on every row, which defeats branch prediction -->
<query>SELECT count() FROM zeros(20000000) WHERE NOT ignore(toString(intDiv(rand64(), pow(10, rand() % 20)::UInt64 + 1))) SETTINGS max_threads = 1</query>
<!-- Through an output format rather than through toString -->
<query>SELECT count() FROM zeros(20000000) WHERE NOT ignore(formatRow('TSV', rand64())) SETTINGS max_threads = 1</query>
</test>