Я использую .NET 4.0 c #.
Я только сегодня понял, что проблема производительности была частично вызвана этим:
var feuilleDeTemps =
from fdt in context.FeuilleDeTemps.Include("FeuilleDeTempsJournees");
...
feuilleDeTemps.First().Property
feuilleDeTemps.First().Property
feuilleDeTemps.First().Property
feuilleDeTemps.First().Property
...
FeuilleDeTemps myFT = feuilleDeTemps.First();
return myFT;
Я использовал первый элемент feuilleDeTemps (примерно 4 раза на цикл x 60 циклов) перед тем, как установить его в обычную переменную, подобную этой:
FeuilleDeTemps myFT = feuilleDeTemps.First();
Тогда я понял, что это вызывает проблемы с производительностью. Я использовал это вместо:
var feuilleDeTemps =
from fdt in context.FeuilleDeTemps.Include("FeuilleDeTempsJournees");
FeuilleDeTemps myFT = feuilleDeTemps.First();
...
myFT.Property
myFT.Property
myFT.Property
myFT.Property
...
return myFT;
Я использовал feuilleDeTemps.First (). Свойство около 240 раз.
Теперь я использую его 60 раз, и 240 использований свойства идут напрямую через типизированную переменную.
Это заставило мой код выполнять в 2 раза меньше времени (3 секунды против 6 секунд, что все еще довольно медленно) ...
Почему?