Measurement

Материал из Русский WINE
Перейти к: навигация, поиск

Eterforcetest —измерение скорости функций WinAPI

В связи с невозможностью проводить измерения (профилирование) используемого функциями процессорного времени непосредственно на программе (1С 7.7), был создан набор тестов, измеряющий время для заданных функций.

Тест может выполняться в Wine и Windows.

Получить тест

  • Тест в виде EXE-файла:

ftp://updates.etersoft.ru/pub/Etersoft/Eterforcetest/eterforcetest.exe

  • Репозиторий с исходным кодом:

http://git.etersoft.ru/people/lav/packages/eterforcetest.git

Использование

eterforcetest [название_набора_тестов]

При запуске без параметров производятся тесты по всем направлениям.

При указании конкретного, например, string, проводятся тесты только из набора тестов на строковые функции.

eterforcetest --list

выведет список всех доступных тестов

При выполнении теста выводятся строки наподобие

Test for GetTickCount .....   1.254mks pc ( 4380 ms) (100%) (1/10 - 3.50m iterations)

Что означает:

  • Функция GetTickCount использует 1,25 микросекунды на каждый вызов;
  • Выполнения цикла вызовов GetTickCount заняло 4380 миллисекунд,
  • что составляет 100% от эталонного значения;
  • была выполнена только 1/10 часть от полного цикла измерений;
  • всего при измерении было выполнено 3,5 миллиона вызовов GetTickCount;

Для устранения случайных влияний внутри каждого цикла оформляется 5 подциклов измерений с заведением своего отсчёта и дальнейшим усреднением результатов.

Разработка

Измерение времени работы функций

Тесты создаются следующего вида:

static CHAR *str;



MSTART(1, "strchr", 1) {

      str = strchr(TEST_STRING, 'z');

} MEND


Параметры MSTART:

  1. флаг, ненулевое значение которого разрешает выполнения теста
  2. текстовое описание тестируемой функции
  3. делитель для количества итераций (если функция такова, что 7 млн. итераций выполняется очень долго)

Обратите внимание на статический str и присваивание ему результата работы функции. Без этого компилятор может выкинуть функцию, результат работы которой не используется.

Проблемы

Замечено, что функции, помеченные inline, на самом деле inline не становятся.

Wine
Search.png
Программы работающие в Wine • Скачать • Школьный Wine
WINE@Etersoft Общие сведения • Установка на 64-битные ОС • Особенности разработки • Патчи для WINE@Etersoft • Административная установка • Дополнительные компоненты • Как получить WINE@Etersoft? • Лицензия на документацию • Глоссарий • Использование аппаратных ключей защиты в Linux • Дополнительная информация • [ Совместная работа | по CIFS • по NFS ] • Изменение системных ограничений • Регистрация продукта • Пошаговая инструкция по установке rpm-пакетов • Обращение в службу поддержки • Терминальные решения • Установка WINE@Etersoft • Подписка на обновления • Настройка WINE@Etersoft • Разработчику • Enterprise • Что такое WINE@Etersoft SQL • Возможности • Среда для запуска приложений Windows • Использование WINE@Etersoft • FAQ по использованию WINE@Etersoft • Основные команды • WINE@Etersoft/Local • Что такое WINE@Etersoft Local
Программы Запуск БЭСТ 4+ • Запуск Консультант+ (сетевой версии) • ГарантF1 • Инфо-Бухгалтер 8.x • Налогоплательщик ЮЛ
1C Отличия от обычного Wine • Местоположение базы 1С • 1C: Предприятие 7.7 в WINE • Настройка 1С 7.7 для работы с SQL-сервером • Установка 1С: Предприятия 8.1 • Установка 1С: Предприятия 8.1 в трёхзвенном режиме
Пользователю
Помощь Использование Winecfg • Использование Regedit • Публичный префикс • Несколько версий • Ключи regedit
Легальность DCOM95 • IE5 • DCOM • MSXML
Утилиты для работы с Wine Winetricks • WineTools • Q4Wine • PlayOnLinux • IEs4Linux • Wine-Doors • Swine • Wine Launcher • Lutris
Разработчику
Компоненты Windows • Запрет отключения защиты программы • Управление обработчиком исключений • StraceNT • Измерение скорости функций WinAPI • GL • Устройство чтения смарт-карт • Профилирование • Тесты для проверки интерфейсов • Написание тестов в системе Wine • Аутентификация в домене AD • Репозитории • Применение Git-патчей
Помощь Создание патчей • Написание приложения под wine • Отправка патчей • Сборка eterhack • Сборка wine-public
Отладка Способы отладки • WINEDEBUG • Winedbg
Разработка WINE
1C • ODBC • WinHelp • Компас • Методика • Тестирование доступа • Цвета • Файловый диалог • Тестирование • Литература • Изображения • Win32 • Шрифты • Файловые блокировки • Ссылки • Ключи защиты • RPM • WineGecko • ListView • Упаковка Wine
Производителю
Родственные проекты
LUK • ReactOS • ARWINSS • CrossOver • KernelEx
Прочее
PageSetupDlg • FreeBSD • Wwr