none
Прекомпиляция сайта на локальной машине. RRS feed

  • Вопрос

  • При выкладывании MVC3 сайта на хостинг, он там довольно долго компилируется. Чтобы он быстро работал, нужно скачала пару минут подождать открытия первой страницы, потом по 20-30 сек для всех остальных страниц. Если сайт долго не открывать, это повторяется без изменения файлов.

    Можно ли его как-то прекомпилировать его на мощном компьютере?

    Или как-то перенастроить?

    3 июля 2012 г. 10:57

Ответы

  • Скорее всего дело не в компиляции, а в Вашем коде. Ищите "узкие места": в коде, при соединениях с БД и т.д. Подобное могло наблюдаться в ASP.NET WebForms в проектах типа веб-сайты, когда страницы компилировались на лету. В MVC подобной проблемы нет, так как Вы уже отслылаете скомпилированную сборку. Разве, что представления могут быть напичканы кодом, тогда рефакторинг.
    3 июля 2012 г. 11:08
    Модератор

Все ответы

  • Скорее всего дело не в компиляции, а в Вашем коде. Ищите "узкие места": в коде, при соединениях с БД и т.д. Подобное могло наблюдаться в ASP.NET WebForms в проектах типа веб-сайты, когда страницы компилировались на лету. В MVC подобной проблемы нет, так как Вы уже отслылаете скомпилированную сборку. Разве, что представления могут быть напичканы кодом, тогда рефакторинг.
    3 июля 2012 г. 11:08
    Модератор
  • Есть такое понятие как "холодный старт", это когда определённое время нет запросов к серверу и домен приложения выгружается, поэтому следующий запрос может идти немножечко долго, но пара минут, как в Вашем случае - критично. Вот почитайте по этому поводу.
    3 июля 2012 г. 11:19
    Модератор
  • Разве, что представления могут быть напичканы кодом, тогда рефакторинг.

    Если скажем в представлении такой код:

    @if (Model.Type == SellTypes.Garage)

    {

    <label for="SocietyType">Гаражное общество: @Html.EditorFor(m=>m.SocietyType)</label>

    }

    И так для 3-4 полей. Это считается за "напичканы кодом" ?

    3 июля 2012 г. 11:49
  • Нет, в этом случае нет. Просто иногда бывают такие изощрённые представления, что чёрт ногу сломит, а потом жалуются, что медленно или не работает.
    3 июля 2012 г. 11:52
    Модератор
  • Вот почитайте этот топик, может что-то полезное найдёте для себя.
    3 июля 2012 г. 11:54
    Модератор
  • Вот почитайте этот топик, может что-то полезное найдёте для себя.

    Все соединения с базой только через using().

    Попробую разобраться в профилировщике..

    3 июля 2012 г. 12:04
  • А на локальной машине работает без проблем? База данных хостится на отдельном сервере? Как много данных передается между базой и сайтом?


    Для связи [mail]

    3 июля 2012 г. 14:13
    Модератор
  • А на локальной машине работает без проблем? База данных хостится на отдельном сервере? Как много данных передается между базой и сайтом?


    Для связи [mail]

    На локальной машине работает мгновенно. Но у меня i5 с 8Gb памяти, а на хосте VDS  2хдо 2Ghz, 512 оперативки.

    И в это умешается WinServer 2008, сайт на WebForms, сайт на MVC PostgreSQL, FTP Server.

    Вот какие результаты вывел вывод Debug'a. Когда появилось первое сообщение я не видел, т.к. подождав с полминуты я отошел от компьтера.

    То, что начинается на "чтение" читается с бд.

    Количество записей небольшое, не больше 50 для каждого.

    Чтение идет через "using (connection)" и "using (var reader = command.ExecuteReader())"





    3 июля 2012 г. 14:32
  • По-моему, дурно Postgres'у может быть. Посмотри настройки. Можешь
    посмотреть чем забита память на сервере?
     
    Модератор