Медленная или задержка загрузки моего приложенияC++

Программы на C++. Форум разработчиков
Anonymous
 Медленная или задержка загрузки моего приложения

Сообщение Anonymous »

Вопрос:

Мой вопрос заключается в том, как повлияет на объем памяти или производительность моего приложения, если я заменю такие функции, как foo1 (который есть в моем коде) ниже с помощью foo2. Эта функция часто вызывается в приложении.

Код: Выделить всё

#define SIZE 5000

void foo1()
{
double data[SIZE];
// ....
}

void foo2()
{
std::unique_ptr< double[] > data( new double[SIZE] );
// ....
}
Контекст:

Мое приложение MFC загружается очень медленно на работающем встроенном устройстве Windows 7 после внедрения новых функций/модулей. То же приложение быстро загружается на ПК. По крайней мере, одно из различий, и я подозреваю, что причина в том, что оперативной памяти на встроенном устройстве очень мало, всего 768 МБ.

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

Моя теория заключается в том, что Windows тратит все это время на настройку среды для exe, и после этого она работает быстро. Причина, по которой я подозреваю это, заключается в том, что в приложении в стеке объявлено много больших структур, и мне пришлось переместить некоторые из них в кучу, чтобы избавиться от ошибок переполнения стека даже на ПК с новыми функциями.

Как вы думаете, что является причиной медленной или, точнее, задержки загрузки исполняемого файла на машине с малым объемом оперативной памяти? Как вы думаете, это исправится, если я перенесу все большие структуры из стека в кучу?

Подробнее здесь: https://stackoverflow.com/questions/260 ... pplication

Вернуться в «C++»