вторник, 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

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

пятница, 25 июля 2008 г.

Создана группа на Google Group

Сегодня создал группу посвящённую Nomad.NET на Google Groups. В данный момент там только три участника (включая меня) и ни одного сообщения. Но в будущем я буду размещать там ранние беты для ознакомления (промежуточные версии которые сыроваты для релиза).
Данная группа также может использоваться для обсуждения Nomad, внесения предложений, обсуждения их, голосования и так далее. Такой вариант использования правда зависит уже от вас. С моей точки зрения будет удобнее, вместо того чтобы писать замечания в комментариях в этом блоге, можно будет разместить их в группе, да и мне проще будет отслеживать веяния.

Приглашаются все желающие.

P.S. Заметил что я довольно сильно уже привязал Nomad ко всяких гугловым сервисам, но, каррамба, много чего у них есть полезного и дёшево совсем ($0).

вторник, 8 июля 2008 г.

Тестируется новая версия

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

В этой версии нет большого количества новых функции. Изначально релиз задумывался как исправление ошибок, но, как обычно, я не удержался и добавил несколько полезных возможностей, среди которых хотелось бы выделить поддержку "наборов значков". Полную историю изменений уже сейчас можно почитать здесь.

Nomad.NET испльзующий набор значков Tango.

вторник, 24 июня 2008 г.

Tips & Tricks 6

Сегодня бы хотелось рассказать про команду "Восстановить Выделение из Буфера Обмена". Некоторые интересуются как пользоваться этой командой, и как положить выделение в буфер ведь никакой выделеной команды для этого нет.

Всё очень просто. Данная команда берёт любую информацию о файлах которую находит в буфере и на основании этого восстанавливает выделение.

Таким образом есть четыре команды которые позволяют положить информацию о файлах в буфер обмена, для последующего восстановления выделения. Эти команды:
  • Вырезать
  • Копировать
  • Копировать Имя как Текст
  • Копировать Имя и Путь как Текст
Три команды из этих четырёх привязаны к папке, и соответственно выделение может быть восстановлено только в той же самой папке. Но команда "Копировать Имя как Текст" копирует только имена файлов в буфер, и поэтому выделение может быть восстановлено в любой папке которая содержит файлы с такими именами.

Вот и всё. На мой взгляд довольно просто и логично, и не захламления меню лишними командами.

понедельник, 23 июня 2008 г.

Вышла версия 2.2.5.605 бета

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