Base64 size cases
Byte-for-byte inputs from 1 to 10,000 bytes show where padding makes the familiar “33% overhead” shorthand inaccurate.
First-party test data, exact environments, edge cases, and limitations. These pages render committed result files; visitors cannot trigger server benchmarks or stress tests.
Z Tools uses small deterministic suites to verify behavior that matters to the public tools. The goal is reproducibility and error detection—not universal performance rankings.
Byte-for-byte inputs from 1 to 10,000 bytes show where padding makes the familiar “33% overhead” shorthand inaccurate.
Strict native parsing is checked against Unicode, BOM input, invalid escapes, large integers, trailing commas, and deep nesting.
A deterministic 1200×800 fixture is encoded across JPEG, PNG, and WebP settings when the installed PHP GD build supports them.
The timing rows below are Node/V8 Web Crypto reference measurements, not claims about Chrome, Safari, Firefox, or a visitor's device.
Codec results are fixture-specific. They should not be read as promises that an arbitrary photograph or screenshot will achieve the same savings.
| Input bytes | Output characters | Measured overhead | Exact padded length |
|---|---|---|---|
| 1 | 4 | +300.00% | 4 × ceil(1 / 3) = 4 |
| 2 | 4 | +100.00% | 4 × ceil(2 / 3) = 4 |
| 3 | 4 | +33.33% | 4 × ceil(3 / 3) = 4 |
| 10 | 16 | +60.00% | 4 × ceil(10 / 3) = 16 |
| 100 | 136 | +36.00% | 4 × ceil(100 / 3) = 136 |
| 1,024 | 1,368 | +33.59% | 4 × ceil(1024 / 3) = 1368 |
| 10,000 | 13,336 | +33.36% | 4 × ceil(10000 / 3) = 13336 |
Method: deterministic raw byte buffers, encoded in the recorded JavaScript environment. The formula is defined by the 24-bit-to-four-symbol grouping used by padded Base64.
| Case | Parsed | Observed result |
|---|---|---|
valid-basic |
Yes | object |
trailing-comma |
No | SyntaxError: Expected double-quoted property name in JSON at position 7 (line 1 column 8) |
unicode |
Yes | object |
bom |
No | SyntaxError: Unexpected token '', "{"a":1}" is not valid JSON |
invalid-escape |
No | SyntaxError: Bad escaped character in JSON at position 7 (line 1 column 8) |
large-integer |
Yes | object |
nested-100 |
Yes | array |
A successful parse proves syntax validity only. It does not prove a business schema, field type, identifier precision, or authorization rule.
| Algorithm | Input | Iterations | Average | Min | Max |
|---|---|---|---|---|---|
| SHA-256 | 1,024 B | 7 | 0.4564 ms | 0.1498 ms | 2.1298 ms |
| SHA-256 | 102,400 B | 7 | 0.3575 ms | 0.2238 ms | 0.5594 ms |
| SHA-256 | 1,048,576 B | 3 | 2.6693 ms | 2.0531 ms | 3.7226 ms |
| SHA-384 | 1,024 B | 7 | 0.3704 ms | 0.1218 ms | 0.9719 ms |
| SHA-384 | 102,400 B | 7 | 0.4101 ms | 0.3438 ms | 0.4780 ms |
| SHA-384 | 1,048,576 B | 3 | 2.8131 ms | 2.5594 ms | 3.3160 ms |
| SHA-512 | 1,024 B | 7 | 0.3029 ms | 0.1586 ms | 0.5230 ms |
| SHA-512 | 102,400 B | 7 | 0.3652 ms | 0.3302 ms | 0.3870 ms |
| SHA-512 | 1,048,576 B | 3 | 2.5974 ms | 2.3187 ms | 3.0251 ms |
These numbers are useful for regression checks inside this project. They are not a cross-device benchmark and should not be used to choose a cryptographic algorithm by speed.
| Foreground | Background | Ratio | Tool label |
|---|---|---|---|
#000000 |
#FFFFFF |
21.0000:1 | AAA |
#777777 |
#FFFFFF |
4.4781:1 | AA Large |
#1F2937 |
#FFFFFF |
14.6791:1 | AAA |
#FF5733 |
#FFFFFF |
3.1517:1 | AA Large |
#0B57D0 |
#FFFFFF |
6.3862:1 | AA |
Contrast ratio is one accessibility check. It does not evaluate semantics, focus states, typography, motion, reflow, or whether text qualifies for a large-text exception.
| Format | Setting | Baseline | Output | Saved |
|---|---|---|---|---|
| JPEG | quality-60 |
1,606,187 B | 115,555 B | 92.81% |
| JPEG | quality-75 |
1,606,187 B | 152,036 B | 90.53% |
| JPEG | quality-85 |
1,606,187 B | 220,272 B | 86.29% |
| JPEG | quality-92 |
1,606,187 B | 597,987 B | 62.77% |
| PNG | compression-3 |
2,885,501 B | 44,512 B | 98.46% |
| PNG | compression-6 |
2,885,501 B | 24,043 B | 99.17% |
| PNG | compression-9 |
2,885,501 B | 16,118 B | 99.44% |
| WebP | quality-60 |
295,832 B | 97,482 B | 67.05% |
| WebP | quality-75 |
295,832 B | 116,624 B | 60.58% |
| WebP | quality-85 |
295,832 B | 171,876 B | 41.90% |
| WebP | quality-92 |
295,832 B | 219,396 B | 25.84% |
The synthetic fixture makes runs diffable, but it is intentionally not presented as a representative photo corpus. Real images vary dramatically by texture, noise, transparency, source encoder, and target dimensions.
| Input | Detected words | snake_case output |
|---|---|---|
XMLParser2 test-value |
XML · Parser2 · test · value | xml_parser2_test_value |
helloWorld |
hello · World | hello_world |
API_response-code |
API · response · code | api_response_code |
iPhone 15 Pro |
i · Phone · 15 · Pro | i_phone_15_pro |
café déjàVu |
café · déjàVu | café_déjàvu |
The benchmark scripts stay in a server-blocked development directory. This page only renders committed results so a visitor cannot turn the site into a CPU, memory, or codec stress endpoint. When an environment changes, results must be rerun offline and committed with the new environment metadata.