вторник, 19 августа 2008 г.

Скорость запуска Nomad

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

Nomad.NET построен на "новой" технологии от Microsoft под названием .NET, и как любая технология у неё есть преимущества и недостатки. Преимущества я сейчас затрагивать не буду, а вот одним из недостатков является медленный холодный старт.
Разделяют два вида запусков .net приложений, холодный и горячий старты. Грубо говоря холодный старт происходит если вы запускаете .net приложение сразу после загрузки машины, когда ещё ни одна часть фрэймворка не загружена в память. Ну а горячий соответсвенно это когда некоторые части фрэймворка уже прокэшированы, обычно если запустить программу, затем закрыть, а затем через некоторое время снова запустить это и будет горячий старт.
Так вот возвращаясь к медленному холодному старту, дело в том что при первом запуске приложения происходит его компиляция из системонезависимых кодов в системозависимые, такая компиляция происходит по мере необходимости но тем не менее отрицательно сказывается на времени загрузки.

Теперь когда причина ясна, можно перейти к решениям:
  1. Самое простое раз мы видим, что при запуске происходит компиляция, возникает вопрос, а нельзя ли компиляцию провести один раз, и потом больше не тратить на неё время. Ответ - можно. Прекомпиляция не всегда является лучшим решением, поскольку в этом случае теряются некоторые возможности по оптимизации JIT компилятором, однако, тем не менее в подавляющем большинстве случаев это приводит к ускорению холодного запуска на 20-30%. В последней версии Nomad я включил файл Compile.bat, который компилирует все необходимые файлы.
  2. Вторая возможность - оптимизация запуска. В общем это попытка делать как можно меньше вспомогательных действий во время запуска до того как появится главное окно приложения. И в Nomad старается оптимизировать запуск, откладывая второстепенные задачи на потом.
  3. Ну и напоследок оптимизация загрузки. Понятно что от меня это зависеть не может, но к счастью, в Microsoft видят проблемы, и даже пытаются их решать. Итак совсем недавно, буквально неделю назад вышел .Net Framework 3.5 SP1. Который принёс с собой множественные оптимизации в загрузке связанных модулей (так же как и всяческих других оптимизаций) приводящее к уменьшению времени холодного запуска. Тут необходимо сказать, что Nomad написан с использованием .Net Framework 2, и 3.5 ему не нужен. Однако при установке данного обновления Nomad, так же как и любое другое .Net приложение начинает запускаться на 30-40% быстрее. Но как и во всём есть и отрицательные стороны, объём данного sp довольно велик и колеблется от 63 до 200мб. Примечание: линк для загрузки полного пакета (а не заглушки загружающей только необходимые части), находится чуть ниже на странице загрузки.
Ну вот в общем и всё что я хотел сказать, комбинируя пункты 1 и 3, можно добится уменшения времени запуска на 40-60% в зависимости от условий. Также хочется отметить что .net 3.5 sp1 привносит и другие улучшения и оптимизации, что должно положительно сказаться и на скорости работы приложений.

пятница, 15 августа 2008 г.

Превышение лимита на Google Pages

Опять столкнулся с превышением лимита пропускной полосы на Google Pages. Но в этот раз я подстрахован, программу можно скачать с нескольких различных зеркал (включая рекомендуемое зеркало на BetaNews).
Но из-за этих ограничений некоторые сервисы Nomad перестали работать, в частности проверка обновлений не работает, а по ссылке на скачивание наборов значков, собственно наборы скачать нельзя. Кстати довольно интерестно сделано превышение лимита, в отличие от других хостеров, при превышении лимити страницы продолжают открыватся, но вот все вспомогательные файлы, картинки например блокируются.
Это не сильно большая проблема, потому что новая версия Nomad не ожидается в ближайшем будущем, а наборы значков можно скачать не только на страничке в Google Pages, но и на официальном сайте который уже давно хостится на Google Sites.
Кстати в связи с планируемым отключением серверов Google Pages позднее в этом году, все сервисы будут потихоньку переводится на Sites, тем более что в последнее время они очень хорошо обновились в нужную сторону.

четверг, 14 августа 2008 г.

Вышла версия 2.3.0.685 RC

После почти двух месяцев ожидания вышла новая версия. Как вы можете видеть, данная версия помечена как релиз кандидат, и это значит что программа достаточно стабильна для того чтобы выйти из стадии беты. Данный релиз задумывался, как обычно, для исправления ошибок (предыдущая версия содержала две критических ошибки), но со временем вырос в нечто большее. Главное в данной версии - это улучшенный внешний вид: темы, наборы значков, разнообразные изменения форм, продвинутые всплывающие подсказки и т.д. Список остальных улучшений и исправлений вы можете найти в истории изменений. Новую версию можно найти на официальном сайте.