У меня проблемы с производительностью небольшой программы, которая иногда запускается на компьютере очень часто. Это 32-битная программа, работающая на 64-битной машине. Он называется im_comp.exe и обычно размещается и запускается из:
C:\Program Files (x86)\TESLA\bin
Теперь, если я запускаю эту программу 150 раз из этого места, это займет 15 секунд, но если я скопирую папку bin на рабочий стол и запустите ее оттуда, это займет всего 10 секунд (каждый раз это на ~ 30% быстрее, без исключений). Я подумал, что это может иметь какое-то отношение к тому, откуда процесс загружает свои библиотеки, поэтому очистил путь от всего, что связано с TESLA, и это не имеет значения. Затем я запустил монитор процесса для одного выполнения и обнаружил явную разницу. В журнале, когда программа запускалась из C:\Program Files (x86)\TESLA\bin, есть много записей, следующих за этим шаблоном:
CreateFile C:\Program Files (x86)\TESLA\bin\im_comp.exe.Local\wow64.dll PATH NOT FOUND Desired Access: ...
CreateFile C:\Program Files (x86)\TESLA\bin\wow64.dll NAME NOT FOUND Desired Access: ...
CreateFile C:\Windows\System32\wow64.dll SUCCESS Desired Access: ...
Эти записи полностью отсутствуют в журнале при запуске с рабочего стола.
Теперь есть.Локальные файлы как в папке bin рабочего стола, так и в другой. Даже если я удалю все.Локальные файлы из папок, я все равно получаю те же шаблоны логов.
Почему процесс пытается получить доступ к файлам DLL в локальном каталоге, хотя их нет.Локальные файлы? Это проблема, основанная на самой программе или окружающей среде? Есть ли способ отключить его, желательно, не перемещая его, поскольку он является частью более крупного приложения.