Iot Solutions Developer
Extenstion 'mbstring' not loaded or not compiled! Multi-byte string tests will produce empty result!
------------------------------------------------------------------------------------------- | PHP BENCHMARK SCRIPT | ------------------------------------------------------------------------------------------- Start : 2021-05-23 02:16:32 Server : Linux/5.10.32-un-def-alt1 aarch64 Platform : Linux System : ALT Workstation 9.1 (Laertes) CPU : model : Cortex-A57 cores : 8 available : 8 MHz : 50MHz Memory : 256 Mb available Benchmark version : 1.0.37 PHP version : 7.3.27 available modules : mbstring : no json : yes pcre : yes Max execution time : 600 sec Crypt hash algo : MD5 ------------------------------------------------------------------------------------------- TEST NAME : SECONDS | OP/SEC | OP/SEC/MHz | MEMORY ------------------------------------------------------------------------------------------- 01_math : 8.808 sec | 113.53 kOp/s | 2.27 kOps/MHz | 2 Mb 02_string_concat : 0.988 sec | 7.80 MOp/s | 155.95 kOps/MHz | 128.84 Mb 03_1_string_number_concat : 7.818 sec | 639.52 kOp/s | 12.79 kOps/MHz | 4 Mb 03_2_string_number_format : 6.880 sec | 726.75 kOp/s | 14.53 kOps/MHz | 4 Mb 04_string_simple_functions : 8.959 sec | 145.10 kOp/s | 2.90 kOps/MHz | 4 Mb 05_string_multibyte : -.--- sec | -.--Op/s | -.--Ops/MHz | 0 06_string_manipulation : 16.111 sec | 80.69 kOp/s | 1.61 kOps/MHz | 4 Mb 07_regex : 9.372 sec | 138.71 kOp/s | 2.77 kOps/MHz | 4 Mb 08_1_hashing : 9.121 sec | 142.52 kOp/s | 2.85 kOps/MHz | 4 Mb 08_2_crypt : 24.709 sec | 404.72 Op/s | 8.09 Ops/MHz | 4 Mb 09_json_encode : 15.315 sec | 84.88 kOp/s | 1.70 kOps/MHz | 4 Mb 10_json_decode : 22.405 sec | 58.02 kOp/s | 1.16 kOps/MHz | 4 Mb 11_serialize : 12.070 sec | 107.70 kOp/s | 2.15 kOps/MHz | 4 Mb 12_unserialize : 15.904 sec | 81.74 kOp/s | 1.63 kOps/MHz | 4 Mb 13_array_fill : 7.982 sec | 6.26 MOp/s | 125.29 kOps/MHz | 12 Mb 14_array_range : 1.150 sec | 86.99 kOp/s | 1.74 kOps/MHz | 12 Mb 14_array_unset : 7.537 sec | 6.63 MOp/s | 132.69 kOps/MHz | 12 Mb 15_loops : 8.161 sec | 24.51 MOp/s | 490.15 kOps/MHz | 4 Mb 16_loop_ifelse : 3.594 sec | 13.91 MOp/s | 278.27 kOps/MHz | 4 Mb 17_loop_ternary : 8.815 sec | 5.67 MOp/s | 113.45 kOps/MHz | 4 Mb 18_1_loop_defined_access : 1.877 sec | 10.66 MOp/s | 213.16 kOps/MHz | 4 Mb 18_2_loop_undefined_access : 15.441 sec | 1.30 MOp/s | 25.90 kOps/MHz | 4 Mb 19_type_functions : 4.260 sec | 704.26 kOp/s | 14.09 kOps/MHz | 4 Mb 20_type_conversion : 4.171 sec | 719.26 kOp/s | 14.39 kOps/MHz | 4 Mb 21_0_loop_exception_none : 0.186 sec | 21.56 MOp/s | 431.26 kOps/MHz | 4 Mb 21_1_loop_exception_try : 0.213 sec | 18.81 MOp/s | 376.23 kOps/MHz | 4 Mb 21_2_loop_exception_catch : 8.344 sec | 479.36 kOp/s | 9.59 kOps/MHz | 4 Mb 22_loop_null_op : 5.616 sec | 8.90 MOp/s | 178.06 kOps/MHz | 4 Mb 23_loop_spaceship_op : 4.535 sec | 11.02 MOp/s | 220.50 kOps/MHz | 4 Mb 26_1_class_public_properties : 0.501 sec | 9.97 MOp/s | 199.44 kOps/MHz | 4 Mb 26_2_class_getter_setter : 1.600 sec | 3.12 MOp/s | 62.50 kOps/MHz | 4 Mb 26_3_class_magic_methods : 3.566 sec | 1.40 MOp/s | 28.04 kOps/MHz | 4 Mb ------------------------------------------------------------------------------------------- Total time: : 246.007 sec | 2.45 MOp/s | 48.96 kOps/MHz | Current PHP memory usage: : 4 Mb Peak PHP memory usage: : 125.45 Mb
gcc -g -Wall -O3 test-tlb.c -o test-tlb -lm -D FREQ="1.5" for i in 4k 8k 16k 32k 64k 128k 256k 512k 1M 2M 4M 6M 8M 16M 32M 64M 128M 256M ; do echo "$i:"; ./test-tlb -H $i 64; ./test-tlb $i 64 ; ./test-tlb -Hr $i 64; ./test-tlb -r $i 64; done 4k: 3.38ns (~5.1 cycles) 3.38ns (~5.1 cycles) 3.38ns (~5.1 cycles) 3.38ns (~5.1 cycles) 8k: 3.37ns (~5.1 cycles) 3.37ns (~5.1 cycles) 3.37ns (~5.1 cycles) 3.38ns (~5.1 cycles) 16k: 3.37ns (~5.1 cycles) 5.65ns (~8.5 cycles) 3.37ns (~5.1 cycles) 12.84ns (~19.3 cycles) 32k: 3.43ns (~5.1 cycles) 4.60ns (~6.9 cycles) 3.45ns (~5.2 cycles) 11.42ns (~17.1 cycles) 64k: 5.94ns (~8.9 cycles) 6.02ns (~9.0 cycles) 16.24ns (~24.4 cycles) 16.22ns (~24.3 cycles) 128k: 5.96ns (~8.9 cycles) 6.59ns (~9.9 cycles) 16.24ns (~24.4 cycles) 16.38ns (~24.6 cycles) 256k: 5.95ns (~8.9 cycles) 6.66ns (~10.0 cycles) 16.24ns (~24.4 cycles) 18.65ns (~28.0 cycles) 512k: 5.96ns (~8.9 cycles) 6.65ns (~10.0 cycles) 16.48ns (~24.7 cycles) 19.81ns (~29.7 cycles) 1M: 9.91ns (~14.9 cycles) 11.20ns (~16.8 cycles) 22.74ns (~34.1 cycles) 33.13ns (~49.7 cycles) 2M: 10.14ns (~15.2 cycles) 11.88ns (~17.8 cycles) 60.86ns (~91.3 cycles) 64.48ns (~96.7 cycles) 4M: 10.84ns (~16.3 cycles) 12.67ns (~19.0 cycles) 71.07ns (~106.6 cycles) 78.54ns (~117.8 cycles) 6M: 13.06ns (~19.6 cycles) 16.53ns (~24.8 cycles) 99.53ns (~149.3 cycles) 112.87ns (~169.3 cycles) 8M: 17.26ns (~25.9 cycles) 19.99ns (~30.0 cycles) 144.49ns (~216.7 cycles) 182.61ns (~273.9 cycles) 16M: 21.79ns (~32.7 cycles) 25.37ns (~38.1 cycles) 212.50ns (~318.7 cycles) 228.44ns (~342.7 cycles) 32M: 22.04ns (~33.1 cycles) 26.04ns (~39.1 cycles) 216.38ns (~324.6 cycles) 244.64ns (~367.0 cycles) 64M: 22.06ns (~33.1 cycles) 25.75ns (~38.6 cycles) 219.83ns (~329.7 cycles) 255.81ns (~383.7 cycles) 128M: 21.97ns (~33.0 cycles) 25.89ns (~38.8 cycles) 218.52ns (~327.8 cycles) 265.81ns (~398.7 cycles) 265.81ns (~398.7 cycles) 256M: 21.95ns (~32.9 cycles) 25.88ns (~38.8 cycles) 218.85ns (~328.3 cycles) 218.85ns (~328.3 cycles)
$ make run freq=1.5 gcc -g -Wall -O3 test-tlb.c -o test-tlb -lm -D FREQ="1.5" for i in 4k 8k 16k 32k 64k 128k 256k 512k 1M 2M 4M 6M 8M 16M 32M 64M 128M 256M ; do echo "$i:"; ./test-tlb -H $i 64; ./test-tlb $i 64 ; ./test-tlb -Hr $i 64; ./test-tlb -r $i 64; done 4k: 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 8k: 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 16k: 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 32k: 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 2.01ns (~3.0 cycles) 64k: 2.02ns (~3.0 cycles) 2.02ns (~3.0 cycles) 2.02ns (~3.0 cycles) 2.02ns (~3.0 cycles) 128k: 7.40ns (~11.1 cycles) 7.43ns (~11.1 cycles) 7.39ns (~11.1 cycles) 7.45ns (~11.2 cycles) 256k: 7.41ns (~11.1 cycles) 10.98ns (~16.5 cycles) 7.41ns (~11.1 cycles) 10.00ns (~15.0 cycles) 512k: 7.89ns (~11.8 cycles) 16.36ns (~24.5 cycles) 7.78ns (~11.7 cycles) 16.29ns (~24.4 cycles) 1M: 22.19ns (~33.3 cycles) 21.36ns (~32.0 cycles) 22.18ns (~33.3 cycles) 21.46ns (~32.2 cycles) 2M: 22.18ns (~33.3 cycles) 22.19ns (~33.3 cycles) 22.18ns (~33.3 cycles) 22.20ns (~33.3 cycles) 4M: 22.19ns (~33.3 cycles) 24.19ns (~36.3 cycles) 22.18ns (~33.3 cycles) 27.09ns (~40.6 cycles) 6M: 22.21ns (~33.3 cycles) 28.77ns (~43.2 cycles) 22.18ns (~33.3 cycles) 35.63ns (~53.4 cycles) 8M: 22.18ns (~33.3 cycles) 31.61ns (~47.4 cycles) 22.19ns (~33.3 cycles) 39.64ns (~59.5 cycles) 16M: 29.33ns (~44.0 cycles) 69.35ns (~104.0 cycles) 28.78ns (~43.2 cycles) 86.74ns (~130.1 cycles) 32M: 108.36ns (~162.5 cycles) 97.97ns (~147.0 cycles) 124.15ns (~186.2 cycles) 122.47ns (~183.7 cycles) 64M: 108.33ns (~162.5 cycles) 106.03ns (~159.0 cycles) 124.32ns (~186.5 cycles) 136.67ns (~205.0 cycles) 128M: 108.45ns (~162.7 cycles) 108.53ns (~162.8 cycles) 124.69ns (~187.0 cycles) 141.88ns (~212.8 cycles) 256M: 108.42ns (~162.6 cycles) 108.57ns (~162.9 cycles) 125.08ns (~187.6 cycles) 146.06ns (~219.1 cycles)
Это не HPL, а древний Linpack, но раз он есть, то почему бы не побенчить с ним.
Да, вы правы. На самом деле я советовался с людьми из МЦСТ чтобы правильно собрать бенчи. Эльбрусы любит параллельные программы, но он всё-равно процессор общего назначения.
Тесты собирались под Эльбрусы с разными флагами и запускались с профилем, выбирались лучшие результаты.
8С тоже 28 нм.
Это как раз числодробильный бенчмарк. Там умножения, сложения, работа с массивами. С Этим Эльбрус очень быстро справляется.
В других случаях он на уровне с Байкалом (не числодробильные задачи). Где много переходов, ветвлений и т. д.
Php, Python я бенчил в прошлой статье.
Про цены сложно, серии малые, значит пока дорого.
Детали ядра e2k
Ядро Cortex A57
Ядро Эльбруса
Делал с Atom Z8350 1.44 GHz 4 core. Есть в большой картинке в конце статьи.
На сколько мне известно, ее довольно глубоко меняли и она лучше других языков/сред показывает себя (С конечно же лучше).
Сделаю как-нибудь. Apple M1? А так Байкал М как две малины 4.
Да, на Хромиуме куча всего, ждем... Говорят, там немного сложно из-за зависимостей и JS движка. Вот для Firefox пришлось Rust запиливать.
------------------------------------------------------------------------------------------- | PHP BENCHMARK SCRIPT | ------------------------------------------------------------------------------------------- Start : 2021-05-23 02:16:32 Server : Linux/5.10.32-un-def-alt1 aarch64 Platform : Linux System : ALT Workstation 9.1 (Laertes) CPU : model : Cortex-A57 cores : 8 available : 8 MHz : 50MHz Memory : 256 Mb available Benchmark version : 1.0.37 PHP version : 7.3.27 available modules : mbstring : no json : yes pcre : yes Max execution time : 600 sec Crypt hash algo : MD5 ------------------------------------------------------------------------------------------- TEST NAME : SECONDS | OP/SEC | OP/SEC/MHz | MEMORY ------------------------------------------------------------------------------------------- 01_math : 8.808 sec | 113.53 kOp/s | 2.27 kOps/MHz | 2 Mb 02_string_concat : 0.988 sec | 7.80 MOp/s | 155.95 kOps/MHz | 128.84 Mb 03_1_string_number_concat : 7.818 sec | 639.52 kOp/s | 12.79 kOps/MHz | 4 Mb 03_2_string_number_format : 6.880 sec | 726.75 kOp/s | 14.53 kOps/MHz | 4 Mb 04_string_simple_functions : 8.959 sec | 145.10 kOp/s | 2.90 kOps/MHz | 4 Mb 05_string_multibyte : -.--- sec | -.--Op/s | -.--Ops/MHz | 0 06_string_manipulation : 16.111 sec | 80.69 kOp/s | 1.61 kOps/MHz | 4 Mb 07_regex : 9.372 sec | 138.71 kOp/s | 2.77 kOps/MHz | 4 Mb 08_1_hashing : 9.121 sec | 142.52 kOp/s | 2.85 kOps/MHz | 4 Mb 08_2_crypt : 24.709 sec | 404.72 Op/s | 8.09 Ops/MHz | 4 Mb 09_json_encode : 15.315 sec | 84.88 kOp/s | 1.70 kOps/MHz | 4 Mb 10_json_decode : 22.405 sec | 58.02 kOp/s | 1.16 kOps/MHz | 4 Mb 11_serialize : 12.070 sec | 107.70 kOp/s | 2.15 kOps/MHz | 4 Mb 12_unserialize : 15.904 sec | 81.74 kOp/s | 1.63 kOps/MHz | 4 Mb 13_array_fill : 7.982 sec | 6.26 MOp/s | 125.29 kOps/MHz | 12 Mb 14_array_range : 1.150 sec | 86.99 kOp/s | 1.74 kOps/MHz | 12 Mb 14_array_unset : 7.537 sec | 6.63 MOp/s | 132.69 kOps/MHz | 12 Mb 15_loops : 8.161 sec | 24.51 MOp/s | 490.15 kOps/MHz | 4 Mb 16_loop_ifelse : 3.594 sec | 13.91 MOp/s | 278.27 kOps/MHz | 4 Mb 17_loop_ternary : 8.815 sec | 5.67 MOp/s | 113.45 kOps/MHz | 4 Mb 18_1_loop_defined_access : 1.877 sec | 10.66 MOp/s | 213.16 kOps/MHz | 4 Mb 18_2_loop_undefined_access : 15.441 sec | 1.30 MOp/s | 25.90 kOps/MHz | 4 Mb 19_type_functions : 4.260 sec | 704.26 kOp/s | 14.09 kOps/MHz | 4 Mb 20_type_conversion : 4.171 sec | 719.26 kOp/s | 14.39 kOps/MHz | 4 Mb 21_0_loop_exception_none : 0.186 sec | 21.56 MOp/s | 431.26 kOps/MHz | 4 Mb 21_1_loop_exception_try : 0.213 sec | 18.81 MOp/s | 376.23 kOps/MHz | 4 Mb 21_2_loop_exception_catch : 8.344 sec | 479.36 kOp/s | 9.59 kOps/MHz | 4 Mb 22_loop_null_op : 5.616 sec | 8.90 MOp/s | 178.06 kOps/MHz | 4 Mb 23_loop_spaceship_op : 4.535 sec | 11.02 MOp/s | 220.50 kOps/MHz | 4 Mb 26_1_class_public_properties : 0.501 sec | 9.97 MOp/s | 199.44 kOps/MHz | 4 Mb 26_2_class_getter_setter : 1.600 sec | 3.12 MOp/s | 62.50 kOps/MHz | 4 Mb 26_3_class_magic_methods : 3.566 sec | 1.40 MOp/s | 28.04 kOps/MHz | 4 Mb ------------------------------------------------------------------------------------------- Total time: : 246.007 sec | 2.45 MOp/s | 48.96 kOps/MHz | Current PHP memory usage: : 4 Mb Peak PHP memory usage: : 125.45 MbTest-Tlb
Более подробные детали ядра Эльбруса.
Это не HPL, а древний Linpack, но раз он есть, то почему бы не побенчить с ним.
Да, вы правы. На самом деле я советовался с людьми из МЦСТ чтобы правильно собрать бенчи. Эльбрусы любит параллельные программы, но он всё-равно процессор общего назначения.
Тесты собирались под Эльбрусы с разными флагами и запускались с профилем, выбирались лучшие результаты.
8С тоже 28 нм.
Это как раз числодробильный бенчмарк. Там умножения, сложения, работа с массивами. С Этим Эльбрус очень быстро справляется.
В других случаях он на уровне с Байкалом (не числодробильные задачи). Где много переходов, ветвлений и т. д.
Php, Python я бенчил в прошлой статье.
Про цены сложно, серии малые, значит пока дорого.
Детали ядра e2k
Ядро Cortex A57
Ядро Эльбруса
Делал с Atom Z8350 1.44 GHz 4 core. Есть в большой картинке в конце статьи.
На сколько мне известно, ее довольно глубоко меняли и она лучше других языков/сред показывает себя (С конечно же лучше).
Сделаю как-нибудь. Apple M1? А так Байкал М как две малины 4.
Да, на Хромиуме куча всего, ждем... Говорят, там немного сложно из-за зависимостей и JS движка. Вот для Firefox пришлось Rust запиливать.