У меня следующее предположение о том, почему при профилировании получается замедление Point():
Озвучу его на основе ранее прилагаемого скрина. Т.е., видно, что в списке по итогам профилирования отображается Point(), но не отображается _Point. Количество вызовов функции Point в журнале по итогам профилирования совпадает с количеством вызовов Point() в коде по строке 33 ("двуцикл" по 10 для 1000 = 1000 * 10 * 10 = 100 000).
Предположение следующее: то, что при профилировании функция отображается отдельной строкой в журнале, прибавляет немного времени к обработке по ней при профилировании, замедляя. Как-то так.
P./S.: Код, на основе работы которого вчера был сделан этот скрин по итогам профилирования, приводимый выше и здесь (после выписки из лог-файла при обычной работе), взяла тут у вас. Отличия:
вместо:
for(int i = 0; i < 1000000000; i++)
поставила:
for(int i = 0; i < 1000; i++)
А, вспомнила, и приведение к string заменила на IntegerToString(). Поэтому в списке по итогам профилирования эта функция на скрине. /*и только из-за этого об этом различии уточняю*/
P./S.: Т.е., если брать количественное исчисление, то по коду идёт:
1) 1000 * 10 * 10 = 100 000 обращений к _Point;
2) 1000 * 10 * 10 = 100 000 обращений к Point();
На скрине, в журнале по итогам профилирования отображены отдельными строками только функции (в режиме "Функции по вызовам", где можно видеть наименование вызываемой функции). И соответственно, только второй пункт (Point()).
Дополнено: Приложу ещё скрин из Руководства пользователя, где упоминается о компилировании специальной версии программы для профилирования:
У меня следующее предположение о том, почему при профилировании получается замедление Point():
Озвучу его на основе ранее прилагаемого скрина. Т.е., видно, что в списке по итогам профилирования отображается Point(), но не отображается _Point. Количество вызовов функции Point в журнале по итогам профилирования совпадает с количеством вызовов Point() в коде по строке 33 ("двуцикл" по 10 для 1000 = 1000 * 10 * 10 = 100 000).
Предположение следующее: то, что при профилировании функция отображается отдельной строкой в журнале, прибавляет немного времени к обработке по ней при профилировании, замедляя. Как-то так.
P./S.: Код, на основе работы которого вчера был сделан этот скрин по итогам профилирования, приводимый выше и здесь (после выписки из лог-файла при обычной работе), взяла тут у вас. Отличия:
вместо:
поставила:
А, вспомнила, и приведение к string заменила на IntegerToString(). Поэтому в списке по итогам профилирования эта функция на скрине. /*и только из-за этого об этом различии уточняю*/
P./S.: Т.е., если брать количественное исчисление, то по коду идёт:
1) 1000 * 10 * 10 = 100 000 обращений к _Point;
2) 1000 * 10 * 10 = 100 000 обращений к Point();
На скрине, в журнале по итогам профилирования отображены отдельными строками только функции (в режиме "Функции по вызовам", где можно видеть наименование вызываемой функции). И соответственно, только второй пункт (Point()).
Дополнено: Приложу ещё скрин из Руководства пользователя, где упоминается о компилировании специальной версии программы для профилирования: