Я использую профилировщик производительности redgate для тестирования моего приложения asp.net mvc 2. Одна из вещей, которые я обнаружил, заключалась в том, что XMLSerializer занимал слишком много времени ЦП, поэтому ссылаясь на этот пост. Я изменил его на то, где теперь используется XmlSerializerCache
.
Теперь проблема с XmlSerializer больше не существует, и я профилирую приложение, одновременно имитируя 80 пользователей, используя веб-сайт с Jmeter. Итак, теперь лучшие методы, которые требуют времени, выполняют FirstOrDefault()
для некоторых данных, которые я извлекаю, я приведу пример:
var values=(from c in DataContext.Table1
join s in DataContext.Table2 on new { c.Id, c.date }
equals new { s.Id, s.date } into list
where c.Id== Id && c.date == date
from s in list.DefaultIfEmpty()
select new DayDTO()
{
Points = c.points,
Points1 = c.points1,
Points2 = c.points2,
Points3 = c.points3,
Points4 = c.points4
}).FirstOrDefault();
Может ли кто-нибудь предложить мне, что я могу сделать, чтобы улучшить это? Текущее время составляет 25 секунд и 16 секунд для двух верхних методов. Это только потому, что я одновременно имитирую 80 пользователей, и есть некоторые проблемы со стороны базы данных (sql server 2005), такие как слишком большая таблица и индексация и т.д... и я рассмотрю это, но в настоящее время я пытаюсь определить любые проблемы, которые вы видите с кодом, т.е. проблемы на стороне С#..
Буду признателен за любую помощь спасибо!