2025-12-20

vak: (Знайка)
Чтобы иметь возможность сравнивать производительность 8-битных и 16-битных процессоров с большими, я сварганил на скорую руку простой бенчмарк. Он качественнее чем Dhrystone: не просто вычисляет некие формулы, а работает со списками, множит матрицы, парсит грамматику. Идея подсмотрена у CoreMark, но упрощена до предела. Допускается размер int 16 бит, так что можно компилировать с помощью Turbo C. Скорость я калибровал по PC XT, так что один DureMark примерно равен классической XT-шке 4.77 МГц. Вот пример запуска на такой XT-шке:
DureMark 1.0 Results
=======================
Iterations      : 10
Execution Time  : 9.3 sec
List Workload   : 37.1%
Matrix Workload : 34.1%
State Workload  : 28.8%
-----------------------
Total Score     : 1.07 DureMark
Кроме общей производительности, показывается, какой вклад вносит каждый из трёх задействованных алгоритмов: работа со списками, работа с матрицами и машина состояний.

Тестирование начинается с малого числа итераций, и оно экспоненциально растёт до достижения разумной длительности (несколько секунд). Вот запуск на iMac Intel Core i9 3.6 GHz.
$ duremark
Try 3 iterations...
Try 10 iterations...
Try 30 iterations...
Try 100 iterations...
Try 300 iterations...
Try 1000 iterations...
Try 3000 iterations...
Try 10000 iterations...
Try 30000 iterations...
Try 100000 iterations...
Try 300000 iterations...
Try 1000000 iterations...

DureMark 1.0 Results
=======================
Iterations      : 1000000
Execution Time  : 6.7 sec
List Workload   : 45.8%
Matrix Workload : 11.7%
State Workload  : 42.5%
-----------------------
Total Score     : 149349.25 DureMark
Исходники: github.com/sergev/duremark

Теперь предстоит перемерять всю мою коллекцию компьютеров.
vak: (Бах)
Нету снега в Калифорнии? Не беда! Давайте печатать снежинки на 3D принтере.

Генератор снежинок: github.com/drom/neghero

Онлайн можно поиграться здесь: observablehq.com/@drom/neghero




vak: (Daemon)
Пользуясь новым тулом, продуремарим процессор на старом 486-м компьютере. Напомню, что там запаян Intel 486sx и отдельно втыкается "ускоритель" Cyrix 486dx.



Запускаем MS-DOS на Cyrix 486dx2-66, и под ним DUREMARK.EXE.
DureMark 1.0 Results
=======================
Iterations      : 1000
Execution Time  : 9.1 sec
List Workload   : 44.0%
Matrix Workload : 30.1%
State Workload  : 25.9%
-----------------------
Total Score     : 109.64 DureMark
Меняем процессор на Intel 486sx-25.
DureMark 1.0 Results
=======================
Iterations      : 300
Execution Time  : 5.2 sec
List Workload   : 31.9%
Matrix Workload : 39.4%
State Workload  : 28.7%
-----------------------
Total Score     : 58.09 DureMark
Разница почти в два раза. Хорошо, вернём Cyrix на место и запустим на нём NetBSD.
DureMark 1.0 Results
=======================
Iterations      : 100
Execution Time  : 3.2 sec
List Workload   : 40.1%
Matrix Workload : 17.6%
State Workload  : 42.3%
-----------------------
Total Score     : 31.35 DureMark
Удивительное дело: скорость процессора упала в три раза. Подтверждается моя догадка, что NetBSD отключает кэш Сайрикса. Вероятно, во избежание каких-то глюков.

Ну ничего, я заказал на Ебее родной интеловский 486dx2-66, сравним под NetBSD.
vak: (Житель планеты Узм)
Появилась забавная утилитка для возни с юникодными символами. Ставится командой:
go install zgo.at/uni/v2@latest
К примеру, найдём все символы с котиками.
$ uni search 'cat '
             Dec    UTF8        HTML       Name
'🐱' U+1F431 128049 f0 9f 90 b1 🐱  CAT FACE
'😸' U+1F638 128568 f0 9f 98 b8 😸  GRINNING CAT FACE WITH SMILING EYES
'😹' U+1F639 128569 f0 9f 98 b9 😹  CAT FACE WITH TEARS OF JOY
'😺' U+1F63A 128570 f0 9f 98 ba 😺  SMILING CAT FACE WITH OPEN MOUTH
'😻' U+1F63B 128571 f0 9f 98 bb 😻  SMILING CAT FACE WITH HEART-SHAPED EYES
'😼' U+1F63C 128572 f0 9f 98 bc 😼  CAT FACE WITH WRY SMILE
'😽' U+1F63D 128573 f0 9f 98 bd 😽  KISSING CAT FACE WITH CLOSED EYES
'😾' U+1F63E 128574 f0 9f 98 be 😾  POUTING CAT FACE
'😿' U+1F63F 128575 f0 9f 98 bf 😿  CRYING CAT FACE
'🙀' U+1F640 128576 f0 9f 99 80 🙀  WEARY CAT FACE
А теперь эмодзи.
$ uni emoji ' cat'
	Name                             CLDR
😺	grinning cat                    [animal, face, mouth, open, smile, smiling]
😸	grinning cat with smiling eyes  [animal, face, smile]
😻	smiling cat with heart-eyes     [animal, face, love, smile]
😽	kissing cat                     [animal, closed, eye, eyes, face]
🙀	weary cat                       [animal, face, oh, surprised]
😿	crying cat                      [animal, face, sad, tear]
😾	pouting cat                     [animal, face]
🐈‍⬛	black cat                       [animal, feline, halloween, meow, unlucky]

$ uni emoji 'cat '
	Name                             CLDR
😸	grinning cat with smiling eyes  [animal, face, smile]
😹	cat with tears of joy           [animal, face, laugh, laughing, lol]
😻	smiling cat with heart-eyes     [animal, face, love, smile]
😼	cat with wry smile              [animal, face, ironic]
🐱	cat face                        [animal, kitten, kitty, pet]