Выбор функций для защиты на основе профилирования – это наиболее сбалансированный вариант работы. С одной стороны, он обеспечивает высокую производительность защищенного приложения, с другой – не требует от разработчика досконального знания структуры приложения, а также особенностей работы компилятора.
При профилировании происходит фактический запуск защищаемого приложения. Разработчику предлагается некоторое время поработать с приложением, используя наиболее востребованные функции и сценарии. При этом профайлер измеряет скорость работы отдельных функций и по результатам выдает рекомендации, какие функции вызывались достаточно часто, чтобы их имело смысл защищать, но недостаточно часто, чтобы их защита вызвала проблемы с производительностью.
Аналогично статическому анализу, нужно начать процесс профилирования и выбрать профилируемое приложение (если вызов профайлера осуществляется из мастера лицензирования, то приложение задается автоматически):
Затем можно указать параметры командной строки, с которыми вызывается приложение, и задать файл для сохранения результатов работы профайлера:
По нажатию на кнопку Готово начнется статический анализ приложения (как ив варианте Вручную), и будет предложен первоначальный набор функций для защиты:
Процесс профилирования запускается и останавливается нажатием на соответствующие кнопки в окне профайлера. После запуска приложения необходимо поработать с ним какое-то время, затем закрыть его любым способом.
По результатам анализа повторно выдается окно профайлера со списком функций и отметками, какие из базовых блоков будут защищаться, сделанными на основе измерения скорости работы функций:
Условные обозначения | Пояснение |
Оранжевый цвет шрифта | Функция ни разу не вызывалась профайлером |
Зеленый цвет с галочкой | Функция вызывалась и выбрана для защиты |
Зеленый цвет без галочки | Функция вызывалась, но не выбрана для защиты |