Приложение работает быстрее благодаря анализу производительности Visual Studio

Я изучаю, сколько времени требуется для завершения конкретной операции. Операция выглядит следующим образом:

Parallel.ForEach(items, item => SaveScheme(item));

Метод SaveSchemeработает с базой данных :выполняет некоторые запросы и работает с информацией. Количество элементов в коллекции itemsможет быть достаточно большим.

Когда я запускаю эту операцию, она занимает около 20 -40 секунд. Но когда я запускаю его с включенным профилированием, это занимает всего 3 секунды!

Я не нашел никакой информации об этой проблеме. Мое единственное предположение, что с профилированием Parallel.ForEachсоздает больше потоков, чем без него, но я не знаю точно, и даже если это правда, я не знаю, что с этим делать.

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


УПД. Parallelне имеет к этому никакого отношения :Вместо этого я тестировал простой foreach, и операция все равно завершается за 3 секунды!

18
задан STiLeTT 17 August 2012 в 09:51
поделиться