Я уверен, что JVM может делать некоторые трюки за кулисами, но может ли кто-нибудь помочь мне понять, что на самом деле происходит там?
blockquote>
- Массивная латентность первый вызов вызван инициализацией полной лямбда-подсистемы времени выполнения. Вы платите это только один раз за все приложение.
- При первом обращении к любому выраженному лямбда-выражению вы платите за связь этой лямбда (инициализация
invokedynamic
- После нескольких итераций вы увидите дополнительное ускорение из-за компилятора JIT, оптимизирующего ваш код восстановления.
В любом случае, чтобы избежать этого оптимизация, чтобы я мог проверить истинное время выполнения?
blockquote>Вы просите о противоречии здесь: «истинное» время выполнения - это тот, который вы получаете после разминки , когда все оптимизации были применены. Это время выполнения, которое будет испытывать фактическое приложение. Задержка первых нескольких прогонов не имеет отношения к более широкой картине, если вы не заинтересованы в производительности с одним выстрелом.
. Для исследования вы можете видеть, как ваш код ведет себя с компиляцией JIT отключен: pass
-Xint
к командеjava
. Есть еще много флагов, которые отключают различные аспекты оптимизации.
Ух. Хорошо, я нашел проблему, в основном путем создания совершенно нового проекта и сравнения его web.config линию за линией с моим старым проектом. Оказывается, что преступник - это:
<xhtmlConformance mode="Legacy"/>
, Если я удаляю строку, моя проверка прокладывает себе путь, я ожидал это к. Гугление, который раскрыл набор сообщений в блоге о том, как VisualStudio добавляет что строка к web.config при обновлении веб-приложений от .net 1.1 до .net 3.5.
сообщения в блоге главным образом жаловались на то, как то поле вмешивается в материал Ajax .NET, но я предполагаю, что это смешивает с JavaScript, испускаемым для RequiredFieldValidator подобным способом.
Проверка может произойти на клиенте при наличии, или на сервере. Задание блока проверки допустимости не состоит в том, чтобы предотвратить обратную передачу, это должно проверить вход.
Удостоверяются, что Вам включили JavaScript и пробуете явно установку "EnableClientScript" к истинному.
В коде - позади, Вы никогда не должны полагать, что блоки проверки допустимости проверяют на клиенте и всегда используют "if Page.IsValid"
.
Если Вы нажимаете "Enter" в текстовом поле для представления формы, я не думаю, что блоки проверки допустимости предотвратят обратную передачу.
Вы могли попробовать явное EnableClientScript="True"
параметр к RequiredFieldValidator?