Я использую Профилировщик производительности 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), такие как слишком большая таблица и индексация и т.д ... и я рассмотрю это, но в настоящее время я пытаюсь определить любые проблемы, которые вы видите с кодом, то есть проблемы на стороне C #.
Буду признателен за любую помощь, спасибо!