Подписание exe делает общение медленным? - PullRequest
5 голосов
/ 07 февраля 2012

Сценарий

У меня есть исполняемый файл C #, подписанный сильным ключом.Из этого приложения на C # я вызываю исполняемые файлы C ++ (которые не подписаны), используя pinvoke.Я наблюдаю существенную задержку в исполнении исполняемых файлов C ++.Есть ли причина для этого?

1 Ответ

1 голос
/ 01 марта 2012

Пожалуйста, обратитесь к ответу соседа на Как я могу строго назвать Unmanaged C ++ Dll

В общем, строгое имя для сборки - это только контрольная сумма, которую никто не изменил / не взломал/ внедрен в ваш код (инъекция может быть чем-то вроде вирусного или троянского приложения).Это не очень надежная защита кода, поэтому для завершения всех тестов сборки не требуется много времени.Конечно, для загрузки подписанного кода потребуется немного больше времени, чем для простой сборки.

С другой стороны, PInvoke похож на вызов веб-службы, где код .Net не возражает против этого.код безопасен или нет.Здесь задержки могут быть только в том случае, если у вас много аргументов, и типы аргументов приходят с некоторыми сторонними структурами из некоторых больших подписанных сборок.И здесь вы можете увидеть некоторые небольшие задержки, потому что эти большие сборки загружаются в память, типы проверяются и выполняется PInvoke.

Возможно, вам следует попытаться переместить все классы и структуры из множества сборок в одну.и используйте там PInvoke.Таким образом, в этом случае вам не нужно загружать много сборок.

...