Маленькие и быстрые .NET программы? - 65% времени работы в ResolvePolicy - PullRequest
1 голос
/ 17 марта 2010

Я пытался создать очень маленькое приложение .NET на F #.

Просто нужно преобразовать небольшую строку в другую строку и вывести результат на консоль, например:

convert.exe myString ==> печатает что-то вроде «myConvertedString»

Я использовал dottrace для анализа производительности:

  • 26% (168 мс) в моем действительном преобразовании строк (я думаю, что это нормально.)
  • 65,80% (425 мс) в ResolvePolicy в System.Security.SecurityManager

Время выполнения> 500 мс при каждом выполнении слишком медленное. Могу ли я сделать что-нибудь, чтобы улучшить это?

Было бы хорошо, если бы в этот раз нужен был только первый звонок.

С уважением, forki

Ответы [ 3 ]

7 голосов
/ 17 марта 2010

Вам определенно нужно запускать это как отдельный процесс для каждой строки?

Не могли бы вы передать имя файла, содержащего много строк? Это было бы значительно более эффективным с точки зрения:

  • Время, необходимое для запуска процесса
  • Время, необходимое для загрузки всех различных битов .NET
  • Время, необходимое для JIT вашего кода
  • Время, необходимое для разрешения политики безопасности
1 голос
/ 17 марта 2010

вы можете попытаться скомпилировать сборку. с помощью программы ngen можно скомпилировать сборку .net уже в машинный код, а затем установить сборку в общем пути сборки что должно ускорить время загрузки приложения

1 голос
/ 17 марта 2010

Вы можете использовать caspol.exe , чтобы отключить проверку безопасности доступа к коду.

...