Производительность ASP.net и запросы на компиляцию - PullRequest
1 голос
/ 17 июля 2009

У меня есть сайт ASP.net, который по сути является просто пользовательским интерфейсом для библиотеки классов, которую я создал. Каждый из классов в этой библиотеке классов содержит статический класс определения со статическими ссылками на скомпилированные запросы.

Вроде так:

class MyRecord
{
     /*Some Properties,Fields, and Methods*/

     internal static class Queries
     {
          public static Func<MyDataContext, MyRecord> ACompiledQuery = 
               CompiledQuery.Compile<MyDataContext, MyRecord>(
                    (MyDataContext db) => 
                         from mr in db.MyRecords
                         select mr);
     }
}

Учитывая эту структуру и учитывая, что каждая веб-страница ссылается на эту библиотеку, у меня есть пара вопросов

Вопрос 1: Каждый запрос к веб-серверу IIS, по сути, запускает новый поток, правильно?

Вопрос 2: Если так, значит ли это, что для каждого запроса я перекомпилирую эти запросы?

Вопрос 3: Можно ли как-нибудь сократить количество раз, когда я перекомпилирую эти запросы?

Ответы [ 2 ]

1 голос
/ 17 июля 2009

Статические элементы совместно используются потоками в одном и том же домене приложений, поэтому вы не будете перекомпилировать запрос для каждого запроса.

0 голосов
/ 12 ноября 2009

Вопрос 1. Каждый запрос к веб-серверу IIS обрабатывается существующим потоком из пула потоков приложения.

Вопрос 2: Уже ответил Джоэл

Вопрос 3: Статический, поэтому создается или компилируется только один раз при запуске приложения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...