Время выполнения вызовов Guardant API в Linux

При обращении к любой функции Guardant API на Linux (кроме GrdStartup) идет задержка порядка 1-2 сек, что совершенно неприемлимо, учитывая количество необходимых вызовов (GrdCreateHandle, GrdGetAccessCodes, GrdSetFindMode, GrdFind, GrdLogin, GrdCodeRun).
Общее время выполнения всей этой последовательности составляет около 18 секунд.
На другой тестовой машине проблемы нет (хотя 150мс на каждый вызов - тоже многовато).
В какую сторону копать и где может быть проблема?

(2015-01-26 10:41:36 отредактировано Станислав Петрушевский)

Re: Время выполнения вызовов Guardant API в Linux

Здравствуйте!
Такое поведение проявляется для наших тестовых примеров на этих компьютерах?
При тестирование Вы подключали один и тот же ключ к двум компьютерам или для каждого пк использовался отдельный ключ? (Если ключи разные, пришлите, пожалуйста, полный отчёт утилиты диагностики (Пуск -> панель управления -> Драйверы Guardant -> Диагностика -> Полный отчёт) нам на почту hotline@guardant.ru)
Конфигурации компьютеров идентичны? (Версия ОС, объём оперативной памяти, тип процессора и его быстродействие и т.д.)

Re: Время выполнения вызовов Guardant API в Linux

На машинах клиента проблема пока не воспроизводится.
Однако, даже 150мс на каждый вызов Guardant API (напомню, при инициализации ключа их нужно 6) - много.
Нет ли способа улучшить этот показатель?

Re: Время выполнения вызовов Guardant API в Linux

Уточните, пожалуйста, какую версию API Вы использовали для защиты приложения?

Re: Время выполнения вызовов Guardant API в Linux

Из SDK 6.3

Re: Время выполнения вызовов Guardant API в Linux

Здравствуйте!
150 мс - допустимое время для выполнения GrdLogin.
CodeRun - время выполнения варьируется от 16 мс до 30 сек. Минимальное значение применимо для "пустого" CodeRun, максимальное значение лимитировано 30 секундами.
Остальные вызовы должны выполняться быстро, в пределах 1 мс.

Уточните, пожалуйста, конфигурацию компьютеров, на которых Вы тестировали защищённое приложение.

Re: Время выполнения вызовов Guardant API в Linux

Железо: Celeron G1620 / 2Gb RAM (свободно более 1 Гб)
ОС: Debian 7.6 x86, ядро ванильное

Более подробно о задержках:
Я взял пример Using Debug Library, вырезал оттуда часть, загружающую код и часть, исполняемую в DEBUG_DLL режиме.
Добавил в вывод вызовы gettimeofday(), чтобы узнать, что сколько выполняется.

Получилось примерно так:

===
Initialize this copy of GrdAPI: No errors
Create Grd protected container: No errors
Storing dongle codes in Guardant protected container: No errors
Setting dongle search conditions: No errors
=== общее время 167мс

===
Searching for all specified dongles and print info about it's :
(вырезано)

Dongles searsh is complete with no errors.
=== общее время 211мс

===
Searching for the specified local or remote dongle and login to in: No errors
=== общее время 79мс (логин, здесь все ок как раз)

===
Run GrdCodeRun: No errors
=== общее время 70мс (вызов не пустой, тут понятно время)

===
Closing handle: No errors
Deinitializing this copy of GrdAPI: No errors
=== общее время 282мс

Re: Время выполнения вызовов Guardant API в Linux

Здравствуйте!
Увеличение времени вызовов может быть связано с тем, что срабатывает внутренняя защита и начинается проверка целостности. На процессоре Celeron G1620 это занимает в разы больше времени чем на i5.
Вы не могли бы прогнать этот тест несколько раз и выслать нам полученные результаты?

(2015-01-28 18:42:56 отредактировано Netherspite)

Re: Время выполнения вызовов Guardant API в Linux

Тест1: 165мс, 264мс, 200мс, 70мс, 280мс
Тест2: 170мс, 183мс, 179мс, 70мс, 282мс
Тест3: 166мс, 126мс, 181мс, 69мс, 295мс
Тест4: 169мс, 130мс, 180мс, 130мс, 283мс
Тест5: 163мс, 144мс, 242мс, 68мс, 275мс

Чем может быть вызвано постоянное срабатывание внутренней защиты?

Re: Время выполнения вызовов Guardant API в Linux

Есть ли какие-либо новости по моему вопросу?

Re: Время выполнения вызовов Guardant API в Linux

Здравствуйте, Netherspite.

Приносим свои извинения за задержку с ответом.
По информации от наших разработчиков, большая часть представленных временных задержек находится в пределах нормы, но беспокойство вызывают показатели первого вызова (блока вызовов):

Netherspite пишет:

===
Initialize this copy of GrdAPI: No errors
Create Grd protected container: No errors
Storing dongle codes in Guardant protected container: No errors
Setting dongle search conditions: No errors
=== общее время 167мс

Для более подробной диагностики пришлите нам на почту (hotline@guardant.ru) следующие данные:

  • Тестовый пример (с исходниками), на котором воспроизводятся данные временные задержки;

  • *.nsd-файл маски, прошиваемой в тестируемый ключ;

  • Отчет утилиты диагностики (Пуск/Панель управления/Драйверы Guardant/кнопка "Диагностика"/кнопка "Полный отчет") для тестируемого ключа. Утилита диагностики устанавливается вместе с Windows-драйвером.