Несмотря на возрастающую производительность компьютеров, важную роль при выборе компилятора продолжает играть быстродействие прикладных программ, создаваемых с помощью различных средств разработки. Скорость выполнения программы важна как для “тонких” клиентов, увеличивающих нагрузку на сервер, так и для программ, целиком выполняющихся на клиентской машине.

 

Существует много утилит, предназначенных для тестирования компьютеров на производительность,  -  коммерческие продукты, программы, распространяемые бесплатно. Но для тестирования средств разработки (анализа скорости исполнения генерируемого кода) готовых утилит, конечно, быть не может. Ведь необходимо написать шаблонный текст на соответствующем языке программирования, скомпилировать его в проверяемой среде и выполнить. Автоматизировать данный процесс невозможно. Но для ручного тестирования разработаны специальные алгоритмы, на основе которых создаются программы для конкретных компиляторов. В PC Week/RE (№ 48/96, с.41) был описан разработанный в Тестовом центре PC Week Labs тест Tak, с помощью которого можно испытывать практически любые средства разработки приложений, поддерживающие разные языки программирования. В основу Tak положен простой рекурсивный алгоритм, позволяющий оценивать надежность и быстродействие получаемого кода.

 

Для первого этапа исследований были отобраны распространенные в России компиляторы Borland Pascal 7.0, Borland C++ 5.01, Borland C++ Builder (версия предварительного ознакомления) и Microsoft Visual C++ 4.1, применяемые для создания корпоративных систем. Подобный выбор объясняется тем, что в России по-прежнему довольно активно разрабатываются и используются программы, работающие под управлением DOS, и в список тестируемых продуктов были включены средства разработки, поддерживающие DOS как одну из целевых платформ. Наиболее доступными сегодня в нашей стране продуктами, удовлетворяющими этому условию, являются  -  преимущественно компиляторы Паскаля и Си фирмы Borland. Сейчас Borland Pascal полностью перешел в Delphi (а компилятор командной строки Delphi for Win32 встроен в C++ Builder), но линия Borland C++ продолжает самостоятельно развиваться. Новые версии этих компиляторов, как и прежние, поддерживают возможность создания и отладки программ для DOS.

 

Тестирование проводилось на IBM PC с процессором 486/33 фирмы Intel и памятью 20 Мб на платформах Windows 95, Windows NT 3.51 и в окне эмуляции DOS в Windows 95. Такой выбор был обусловлен тем, что большое количество компьютеров с подобной архитектурой используются в нашей стране на клиентских местах. Все тестовые примеры компилировались без отладочной информации, с настройками оптимизации для получения максимально быстрого кода. Чтобы снизить погрешность, связанную с возможным колебанием тактовой частоты процессора (например, из-за нестабильности электрической сети), каждая программа тестировалась 10 000 раз.

 

Результаты испытаний показаны на диаграммах. Каждый продукт характеризуется числом прогонов (в терминологии PC Week Labs) теста Tak в секунду. Более длинная полоска соответствует более высокому быстродействию  -  большему числу выполнений тестового примера в единицу времени. Один из примечательных результатов  -  значительное отставание в скорости работы программ, написанных для DOS. Это объясняется тем, что в отличие от DOS система Windows 95 считается 32-разрядной и программный код, генерируемый компилятором для подобной платформы, использует все преимущества 32-разрядной архитектуры. На платформе Windows NT 3.51 почти все программы показали увеличение быстродействия на 3 - 5%, за исключением тестовой программы на Паскале, работающей с переменными двойной точности и скомпилированной с помощью C++ Builder. Она показала значительное ухудшение быстродействия  -  более чем на 10%.

 

Корпоративным разработчикам, создающим приложения для клиентских мест, на которых установлена Windows 95, можно порекомендовать среду быстрой разработки на Си++ и Паскале C++ Builder фирмы Borland. Для создания DLL-библиотек и серверных приложений, работающих под управлением Windows NT, больше подходит Microsoft Visual C++. Для DOS вне конкуренции остаются (похоже, навсегда) Borland Pascal 7.0 и Borland C++ 5.01.

 

Данные рекомендации ограничены выбором средств разработки.

 

Программные продукты для тестирования предоставила фирма “Интерфейс”.

 

Сергей Бобровский

 

К Сергею Бобровскому можно обратиться по адресу: softart@extranet.ru.