Читаем Генерация высококачественного кода для программ, написанных на СИ полностью

¦ 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 приводится количество итераций для каждого теста.

--------------------------------------------------------------¬

¦Таблица 1: Результаты оптимизированного теста выполнения ¦

+-------------------------------------------------------------+

¦ COMPUTER ¦

¦ BORLAND INNOVATIONS DATALIGHT ¦

+----------------------T------------T------------T------------+

¦КОМПИЛЯТОР ¦ Turbo C ¦ C86Plus ¦ Optimum-C ¦

+----------------------+------------+------------+------------+

¦ВЕРСИЯ ¦ 1.5 ¦ 1.10 ¦ 3.14 ¦

+----------------------+------------+------------+------------+

¦ЦЕНА ¦ $99.95 ¦ $497 ¦ $139 ¦

+----------------------+------------+------------+------------+

¦РАЗМЕР ПРГРАММЫ(KB) ¦ 35/40 ¦ 30/38 ¦ 33/40 ¦

+----------------------+------------+------------+------------+

¦ОБЩИЕ ОПЕРАЦИИ (*) ¦ ¦ ¦ ¦

¦Вызовы функций ¦ 6.0/7.2 ¦ 7.6/8.2 ¦ 6.0/7.6 ¦

¦Целочисл. арифметика ¦ 7.0/7.0 ¦ 8.5/8.5 ¦ 6.3/6.3 ¦

¦Арифм-ка длинных целых¦ 29.0/29.0 ¦ 23.4/23.9 ¦ 26.3/26.9 ¦

¦Индексация ¦ 7.9/9.9 ¦ 7.9/11.4 ¦ 5.9/7.9 ¦

¦Использ-е указателей ¦ 6.2/15.3 ¦ 12.9/19.2 ¦ 6.8/15.3 ¦

¦ С регистровыми ¦ ¦ ¦ ¦

¦ переменными ¦ 6.8/15.2 ¦ 10.3/19.8 ¦ 6.8/15.3 ¦

¦Решето (Sieve) ¦ 5.0/5.0 ¦ 5.8/5.8 ¦ 4.3/3.8 ¦

¦ С регистровыми ¦ ¦ ¦ ¦

¦ переменными ¦ 6.4/6.5 ¦ 4.6/4.6 ¦ 4.3/3.8 ¦

+----------------------+------------+------------+------------+

¦ОПЕРАЦИИ С ФАЙЛАМИ ¦ ¦ ¦ ¦

¦Чтение и запись (**) ¦ ¦ ¦ ¦

¦ С дискеты на дискету¦ 8.2/8.2 ¦ 8.3/8.3 ¦ 8.3/8.2 ¦

¦ С жесткого диска ¦ ¦ ¦ ¦

¦ на жесткий диск ¦ 3.9/3.4 ¦ 3.9/3.9 ¦ 3.9/3.3 ¦

¦Getc и putc (***) ¦ ¦ ¦ ¦

¦ С дискеты на дискету¦ 49.8/50.6 ¦ 45.6/50.1 ¦ !13.5!/49.4¦

¦ С жесткого диска ¦ ¦ ¦ ¦

¦ на жесткий диск ¦ 17.6/18.4 ¦ 18.9/21.1 ¦ !5.5!/17.3 ¦

+----------------------+------------+------------+------------+

¦ОПЕРАЦИИ 80x87 ¦ ¦ ¦ ¦

¦Сложение/умножение (*)¦ 3.1/3.1 ¦ 2.8/2.8 ¦ 3.1/3.1 ¦

¦Нат. логарифм (****) ¦ 1.0/1.0 ¦ 1.3/1.3 ¦ 1.3/1.2 ¦

¦Синус/тангенс(****) ¦ 1.1/1.1 ¦ 1.5/1.5 ¦ 1.2/1.3 ¦

+----------------------+------------+------------+------------+

¦ Время измерялось в секундах и приводится для ¦

¦ малой/большой моделей памяти. ¦

¦ Тесты выполнялись на IBM PC/AT с тактовой частотой 6 ¦

¦ мегагерц, с сопроцессором 80287, с параметрами в ¦

¦ CONFIG.SYS FILES = 20 и BUFFERS = 20. ¦

¦ Значения, входящие в 10%-ю окрестность лучшего ¦

¦ результата, заключены в восклицательные знаки. ¦

¦ * - 20 итераций, ** - 1 итерация, *** - 2 итерации, ¦

¦ **** - 10 итераций. ¦

L--------------------------------------------------------------

 

--------------------------------------------------------------¬

¦Таблица 1: Продолжение ¦

+-------------------------------------------------------------+

¦ ¦

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных