ребятC++/CLI код становится медленнее внутри цикл
Я пишу код в C++/CLI с помощью Visual Studio 2015.
Прямо сейчас, я столкнулся с нечетной проблемой. Мой код работает медленнее, поскольку он выполняет итерацию внутри цикла. Мой код работает в BackgroundWorker, и это выглядит следующим образом:
for(Int32 d = 0; d < 365; d++){
DoStuff1();
DoStuff2();
DoStuff3();
DoStuff4();
};
В дни «d» пройти мимо, код работает медленнее, то есть, это занимает больше времени, чтобы перейти от дня «г» в день «D + 1 ». Я попытался найти источник проблемы, используя класс StopWatch «вокруг» каждого из методов DoStuff. Я сделал это так:
timeOperations->StartNew;
DoStuff1();
timeOperations->Stop();
milliSec = timeOperations->ElapsedMilliseconds;
Print(milliSec);
Глядя на миллисекундах для каждого метода DoStuff, я могу видеть, что время вычисления не меняется день «D» повторяется. То есть время вычисления для DoStuff1 одинаково для «d = 0», «d = 1», ..., «d = 70» и т. Д. Такая же картина происходит и для других методов DoStuff, только с разным временем вычислений.
Кроме того, я также попытался обертывание секундомера вокруг всех методов DoStuff, как это:
for(Int32 d = 0; d < 365; d++){
timeOperations->StartNew;
DoStuff1();
DoStuff2();
DoStuff3();
DoStuff4();
timeOperations->Stop();
milliSec = timeOperations->ElapsedMilliseconds;
Print(milliSec);
};
Это также приводит к тому же времени вычисления для повседневной. Несмотря на это, я могу ясно видеть, что код идет медленнее и медленнее, так как день «d» повторяется.
Я не знаю, что происходит. Я надеюсь, что некоторые из вас, ребята, решили эту проблему раньше и могут дать мне несколько советов.
Я ценю любую информацию о том, как решить эту проблему.
Заранее спасибо.
Я не уверен, но не должен 'timeOperations-> StartNew' быть' timeOperations-> StartNew() '? В Python это ничего не сделает (вызов функции, а не вызов функции), и это может объяснить вашу ошибку. –
Эй, Жан. Я попробовал timeOperations-> StartNew(), и ничего не изменилось. – Bruno
простите меня за то, что вы дали ложные надежды :), но из ответа кажется, что я не был слишком далек от истины ... –