HTML Preparation code:
Script Preparation code:
Tests:

Historical Performance Data aggregated from 52 community runs

Desktop Results:
Chrome 31 runs
String literally
173.8M/s
String based (return struct)
4.2M/s
clsx
4.2M/s
String based (if-else struct)
4.2M/s
Entries, filter, map, join
3.6M/s
Array based
3.2M/s
classnames
3.0M/s

Fastest: String literally (57.6x faster)

View exact numbers
  • String literally: 173,777,504 ops/sec
  • String based (return struct): 4,217,782 ops/sec
  • clsx: 4,207,108 ops/sec
  • String based (if-else struct): 4,193,002 ops/sec
  • Entries, filter, map, join: 3,641,877 ops/sec
  • Array based: 3,169,924 ops/sec
  • classnames: 3,017,030 ops/sec
Firefox 9 runs
String literally
1439.5M/s
String based (return struct)
5.7M/s
String based (if-else struct)
5.6M/s
Entries, filter, map, join
4.5M/s
clsx
3.7M/s
Array based
2.7M/s
classnames
2.5M/s

Fastest: String literally (576.0x faster)

View exact numbers
  • String literally: 1,439,539,328 ops/sec
  • String based (return struct): 5,686,046 ops/sec
  • String based (if-else struct): 5,626,920 ops/sec
  • Entries, filter, map, join: 4,482,966 ops/sec
  • clsx: 3,716,539 ops/sec
  • Array based: 2,747,777 ops/sec
  • classnames: 2,499,201 ops/sec
Safari 6 runs
String literally
386.7M/s
clsx
8.0M/s
classnames
6.0M/s
String based (return struct)
5.2M/s
String based (if-else struct)
5.0M/s
Entries, filter, map, join
4.6M/s
Array based
3.5M/s

Fastest: String literally (110.9x faster)

View exact numbers
  • String literally: 386,672,672 ops/sec
  • clsx: 7,966,980 ops/sec
  • classnames: 6,002,528 ops/sec
  • String based (return struct): 5,223,249 ops/sec
  • String based (if-else struct): 5,001,527 ops/sec
  • Entries, filter, map, join: 4,585,162 ops/sec
  • Array based: 3,486,184 ops/sec
Mobile Results:
Chrome 6 runs
String literally
471.4M/s
clsx
3.3M/s
classnames
2.9M/s
String based (return struct)
2.8M/s
String based (if-else struct)
2.7M/s
Entries, filter, map, join
2.6M/s
Array based
2.1M/s

Fastest: String literally (224.6x faster)

View exact numbers
  • String literally: 471,409,856 ops/sec
  • clsx: 3,320,676 ops/sec
  • classnames: 2,888,866 ops/sec
  • String based (return struct): 2,788,992 ops/sec
  • String based (if-else struct): 2,704,028 ops/sec
  • Entries, filter, map, join: 2,551,548 ops/sec
  • Array based: 2,099,014 ops/sec

Results show median performance across all community submissions. Run this benchmark yourself to verify on your device.

Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results
  • Test case name Result
    classnames
    clsx
    Array based
    String based (return struct)
    String based (if-else struct)
    Entries, filter, map, join
    String literally

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 9 months ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36
Chrome 142 on Mac OS X 10.15.7
View result in a separate tab
String literally
224.3M/s
clsx
14.7M/s
String based (if-else struct)
13.8M/s
String based (return struct)
13.8M/s
Entries, filter, map, join
9.9M/s
Array based
7.5M/s
classnames
6.5M/s
View exact numbers
Test name Executions per second
String literally 224,329,952 Ops/sec
clsx 14,733,011 Ops/sec
String based (if-else struct) 13,823,149 Ops/sec
String based (return struct) 13,767,583 Ops/sec
Entries, filter, map, join 9,913,314 Ops/sec
Array based 7,539,895 Ops/sec
classnames 6,523,418 Ops/sec