2013-05-29 3 views
1

В Visual Studio 2012 моя программа тратит около 35% своего времени на функцию лямбда, но когда я пытаюсь профилировать свой код (ANALYZE -> Start Performance Analysis), он просто говорит, что он тратит 35% времени выполнения внутри «заполнить» функтор (объект лямбда).Как проработать производительность лямбда-функции?

Невозможно отобразить тело лямбда-объекта, и я не вижу, что он находится внутри лямбды, который занимает все это время.

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

Я использую Visual Studio Ultimate 2012

+3

Скопируйте код из лямбда в метод и вместо этого вызовите этот метод. – dasblinkenlight

+0

Я просто думал о чем-то вроде предложения dasblinkenlight - функция/метод с именем, вероятно, более «доступна» для инструментов отладки/профилирования. –

+0

Да, это сработает, но это не идеально, потому что вызов функции медленнее, чем оценка статической лямбда - по крайней мере, на моей системе в соответствии с профилировщиком - так что это не обязательно точное сравнение. Но если это единственный вариант, я думаю, мне придется это сделать. Приветствия. – arman

ответ

0

Детали в настоящее время объединяются. Попробуйте отключить Инструменты/Параметры/Инструменты производительности/Общие/Только мой код/​​Включить только мой код для отчетов профиля (выборка).

Смежные вопросы