Генерация высококачественного кода для программ, написанных на СИ | страница 16
¦ : dlc1 optbench.c -f-g ¦
¦ dlg optbench.tmp +vbe +all ¦
¦ dlc2 optbench.tmo ¦
¦ ¦
¦ LATTICE MS-DOS C 3.2 ¦
¦ : lc -d -k2 -f -v optbench.c ¦
¦ ¦
¦ MANX AZTEC C86 4.0 ¦
¦ : cc -A +A -B -T +F +2 +ef optbench.c ¦
¦ ¦
¦ METAWARE HIGH C 1.4 ¦
¦ : hc optbench.c -def NO_ZERO_DIVIDE=1 ¦
¦ pragma Off(Check_stack, Check_subscript) ¦
¦ pragma On(286, asm, auto_reg_alloc) ¦
¦ pragma On(floating_point, optimize_xjmp) ¦
¦ pragma On(optimize_xjmp_space, use_reg_vars) ¦
¦ ¦
¦ MICROSOFT C 5.0 ¦
¦ : cl -DNO_ZERO_DIVIDE=1 -c -G2 -Fc ¦
¦ -Ox optbench.c ¦
¦ ¦
¦ MICROSOFT QUICKC 1.0 ¦
¦ : qcl -c -G2 -FPi87 -Ox d:\optbench.c ¦
¦ ¦
¦ WATCOM C 6.0 ¦
¦ : wcc d:\optbench.c /d1 /oilt /s /2 /7 ¦
+---------------------------------------------------+
¦ Выполняемый код для тестов оптимизации и ¦
¦ исполнения, которые использованы в этой статье, ¦
¦ генерировался с помощью этих командных строк с ¦
¦ указанными директивами компиляторов. ¦
L----------------------------------------------------
Результаты теста исполнения для каждого компилятора в малой и большой моделях памяти приводятся в таблице 1. Тесты в наборе теста исполнения организованы в функции, которые вызывались из главной управляющей процедуры. Весь набор был скомпилирован и отредактирован в один файл EXE. Некоторые из процедур теста выполняются так быстро, что единственный вызов функции невозможно точно измерить. В этих случаях функции вызываются из управляющей процедуры многократно, чтобы увеличить время выполнения для получения возможности количественных измерений. В таблице 1 приводится количество итераций для каждого теста.