Проблема производительности Asp.net Mvc 2 DisplayFor?

Это могло бы быть немного тангенциальным, но надо надеяться релевантным.

я раньше работал на Национальные Инструменты, R& D, где я записал программное обеспечение для NI РФ & Коммуникационные инструментарии. Мы использовали LabVIEW вполне немного, и здесь являемся методами, которые мы применили:

  1. Управление исходным кодом. NI использует По необходимости. Мы сделали обычную вещь - dev/trunk ответвления, непрерывная интеграция, работы.
  2. Мы записали автоматизированные наборы тестов.
  3. у Нас было несколько человек, которые вошли со знаниями в обработке сигналов и коммуникации. Мы раньше имели регулярные обзоры кода и документы лучших практик, чтобы удостовериться, что их код был в хорошей форме.
  4. Несмотря на обзоры кода, было несколько случаев, когда "парни программного обеспечения", как я должны были переписать часть этого кода для эффективности.
  5. я знаю точно, что Вы имеете в виду об упрямых людях! У нас были люди, которые раньше думали, что указание на потенциальное повышение производительности в их коде было прямым персональным оскорблением! Само собой разумеется, что это это призывает к хорошему управлению. Я думал, что лучший способ иметь дело с этими людьми состоит в том, чтобы медленно идти, не нажимают к трудно для изменений и при необходимости готовы сделать грязную работу. [Пример: запишите набор тестов для их кода].
5
задан Soe Moe 10 November 2009 в 16:27
поделиться

2 ответа

Кэширование включено только в режиме выпуска. Если вы запустите приложение в режиме отладки, вы можете увидеть снижение производительности из-за обращений к диску.

См. Также: http://codeclimber.net.nz/archive/2009/04/22/how-to-improve-htmlhelper.renderpartial-performances-donrsquot-run-in-debug-mode.aspx

12
ответ дан 13 December 2019 в 05:37
поделиться

Проблема в том, что DisplayFor () использует лямбда-выражение, которое компилируется и выполняется во время выполнения.

Следовательно, разница в производительности в V1 может быть отнесена к этому «промежуточному» этапу компиляции.

V2 - это просто доступ к свойствам, который не требует компиляции.

Я предполагаю, но полагаю, что IIS7 достаточно умен, чтобы хранить кэшированную копию представления (и скомпилированные лямбда-выражения) для повторного использования в будущем, что означает, что время последующего рендеринга будет сопоставимо с V1 в IIS 6.

0
ответ дан 13 December 2019 в 05:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: