Приложение, которое обычно запускается через 3 секунды, запускается сразу после загрузки - 3 минуты. Почему? - PullRequest
0 голосов
/ 21 декабря 2011

Я знаю простой ответ на этот вопрос, но изо всех сил пытаюсь найти подробную информацию, которая поможет мне найти решение.

Приложение My (C ++, MFC) запускается из папки, содержащей несколько гигабайт и несколько десятков тысяч файлов. Сразу после загрузки запуск может занять до 3 минут, но если вы выйдете из него и перезапустите в любое время после этого, запуск займет всего 2-3 секунды. Если я запускаю свое приложение из структуры папок empy, оно запускается быстро, независимо от того, когда я его запускаю.

Я не вижу, что Windows тратит много системного времени и не отдает время процессору моего приложения во время медленного запуска, но вполне может это сделать. Итак, настоящие вопросы:

  • как я могу сказать, что именно мое приложение отнимает время ... в отличие от моего приложения, которое обычно просто получает доступ к папке в первый раз, после чего Windows выполняет большую часть трудоемкой дополнительной работы, над которой мое приложение никогда не будет иметь никакого контроля?
  • Если в моем приложении нет проблем, как я могу изменить структуру файлов / папок или изменить настройки Windows, чтобы минимизировать время, которое занимает Windows? Другими словами ... где я могу найти информацию о том, что Windows делает при первой загрузке папки после загрузки?

Я работаю под управлением Windows XP Professional, но не могу сказать, какие материнские платы, жесткие диски и т. Д. У меня есть, если это может изменить ситуацию.

1 Ответ

3 голосов
/ 21 декабря 2011

Каталог приложений является специальным.Например, это первый каталог, в котором выполняется загрузка DLL.И поиск DLL в каталоге, содержащем десятки тысяч файлов, вероятно, будет медленнее, чем поиск DLL в практически пустом каталоге.

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

Я немного смущен вашим вторым вопросом, так как вы уже ответили на него, когда писали: «Если я запускаю мое приложение из пустой структуры папок, оно запускается быстронезависимо от того, когда я управляю этим. "Но я повторю: «Извлеките ненужный мусор из каталога вашего приложения».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...