Часть 1: Google Chrome

Часть 2: Google Chrome для разработчиков

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

Все эти события прошли мимо меня, пока я был в отпуске. Ну и ладушки.

Поскольку появление нового инструмента в руках пользователей всегда влечет определенные проблемы для тестирования, браузер пришлось отыскать и установить. Сейчас он (официальный сайт Google Chrome) занимает третью позицию в Google (PR 0), вторую в Yahoo, третью MSN, видимо дальние позиции в Live Search и Yandex, первую в Majestic 12, а Alexa почему то найти не удалось. Хорошие показатели, на мой взгляд после восьми дней жизни.

Инсталятор, скачиваемый на компьютер, меньше полумегабайта. Правда, при установки он скачивает из Сети порядка 20 Мегабайт данных. Устанавливается не в привычные “Program Files”, а в “Documents and Settings”. Прямо скажем очень странное решение. Занимает после установки около пятидесяти мегабайт, при этом сам инсталлятор не удаляется и лежит в папке “[Version]\Installer”. Вероятно, установка следующих версий будет приводить к накоплению данных.

Судя по структуре файлов, дальше планируется появление плагинов и тем. Смущает только реализация в виде DLL.

Первым не очень понятным фактом стало то, что запущенный Chrome загружает процессор от 2 до 7% постоянно. Такого поведения не наблюдается у Internet Explorer, Firefox и Opera. Простая загрузка браузера с пустой страницей не приводит к постоянной нагрузке на процессор. Что же делает при этом Chrome? При беглом осмотре понятно не стало – к файлам обращается в меру, при этом в своей директории, реестр использует не больше остальных, в Сеть тоже постоянно не ломится. Исходный код скачивать поленился, возможно, позже всё же пересилю себя.

Интерфейс и функциональность.

Стандартный интерфейс, как и у других браузеров, только сильно урезанный или без лишних элементов, смотря с какой точки зрения подходить. Если браузер воспринимать именно как инструмент для простого просмотра страниц, то очень хорошо. У меня же вызвало смешанные чувства. Такого же эффекта можно добиться в Firefox, IE и Opera нажав F11, разница лишь в том, что при этом браузеры основной тройки разворачиваются на весь экран.


Click!

Куда интереснее поведение адресной строки при вводе ссылки.

Click!

Во-первых шрифт и поле ввода больше, чем у других браузеров. Во вторых цветами отделается домен, символы разметки, пути до страницы на сайте и имена файлов. Немного необычно, но приятно. При вводе адреса Chrome показывается в выпадающем списке возможные результаты, основанные на уже существующей истории пользователя и наиболее близких имен доменов в базе Google. Так же предлагается поискать введенную фразу в выбранном поисковике (по умолчанию Google) и посмотреть всю историю по страницам, попадающую под введенное в адресную строку. Пожалуй, этим можно было удивить в прошлом году, пока не вышел браузер Firefox 3.0. Но всё-таки хорошо, что такая возможность есть уже в первых версиях, потому как ни IE, ни Opera этого пока не сделали (поиск идет по локальной истории).В новом пустом табе (по Ctrl + T например) по умолчанию отображаются наиболее часто посещаемые сайты, а так же список недавних закладок.

Порадовал и поиск по истории браузера. Вообще функциональность очень мне понравилась, в FF и Opera существует похожая возможность, но реализована она по другому – все ячейки пользователь заполняет самостоятельно.

Совсем другой разговор, если обратить внимание на табы. Все стандартные действия поддерживаются (переключение по Ctrl + цифра, Shift, Ctrl, Shift & Ctrl + Click), табы можно менять местами, а так же вообще вытаскивать их в отдельное окно и вкладывать отдельные окна друг в друга. Анимация табулек при перетаскивании и вложении сделана приятно.

При этом, как обещает Google, зависание одного таба не скажется на остальных. Подвесить Chrome удалось легко. Было достаточно загрузить небольшой PDF документ. Пока он полностью не загрузился окно Chrome зависло и переключится на другие табы и отдельные окна не получалось. Другие приложения работали нормально. Так получается из-за того, что на самом то деле табы не являются самостоятельными процессами и запускаются от процесса ядра (это видно через Process Explorer). В результате, когда повисает главный процесс – повисает и всё остальное. Но с другой стороны, если правильно угадать, то можно убить дочерний процесс, подвесивший всё приложение, тогда действительно на других табах это не скажется. У Internet Explorer таже история, если открывать страницы не в табах, а в отдельных окнах.

Другая возможность – создание ярлыков. Любая страничка может быть помещена на рабочий стол, в меню «Пуск» или на панель быстрого запуска. В отличии от простого drug-and-drop для других браузеров, в Chrome существует дополнительный пункт меню который позволяет создать сразу все ярлыки. При этом иконка берется из favicon.ico сайта.


Click!

Запускаются такие ярлыки в отдельном окне Chrome, вообще без навигации. Впрочем, с помощью меню в заголовке окна можно переключиться в нормальный режим. Чем то напоминает Active Desktop, только окна нормальные, а не «утопленные» на заднем плане.Любопытно сделан контекстный поиск по странице. По «Ctrl + F» панелька для ввода появляется чуть ниже строки адреса. При вводе текста показывается количество соответствий и текущее положение.

История посещений и загрузок показываются в отдельном окне в виде веб страниц, с возможностью поиска. Лично мне понравилось, потому как довольно удобно использовать. К сожалению, интерактивного поиска нет (как в Firefox в истории посещений). Функция удобная, когда нет уверенности в точном названии страницы.Интересно еще и то, что иногда количество процессов было больше чем процесс ядра + количество открытых табов и окон Chrome.Я заметил еще одну приятную особенность. При открытии новых окон, они появляются не как обычно правее и ниже родительского, а чуть ниже верхней грани, по середине заголовка.

Click!

Ребята из Google добавили любопытную функцию в браузер – диспетчер задач. Вызвать диспетчер можно из контекстного меню заголовка браузера.

Производительность и стандарты.

Чисто субъективно я не заметил никакой разницы между браузерами в плане скорости загрузки страниц. Страницы с видео роликами, так или иначе, подтормаживаются при загрузке. Не было чудес и при загрузке «Google Analytics» – так же заметны подтормаживания при смене периода.Очень хорошо почувствовал разницу в скорости обработки страницы при изменении размеров текста с помощью «Ctrl + Колёсико Мышки» и Ctrl + «+/- ». Chrome работает очень быстро, практически без задержек. Но, в Chrome возможность увеличения и уменьшения текста ограничена, в отличие от Firefox. Вместе с тем, на мой взгляд, увеличение лучше работает в Internet Explorer и Opera – не портит разметку, и при этом позволяет увеличить страницу, так что на картинках будут видны пикселы.

При старте Chrome в пике съедал 40% процессора (у меня стоит AMD Athlon 3500+ 64 bit с 1 GB Dual памяти и водруженной поверх XP 32 bit с SP3). Для сравнения Firefox потреблял 35%, Internet Explorer -60%, Opera – 50%. Как уже говорилось, дальше в режиме простоя Chrome потреблял от 2 до 7% процессора. Но у Chrome наблюдается сильное преимущество по переключению контекста между потоками, хотя это не очень точно.

Тут мне стало интересно, как поведет себя Chrome при открытии нескольких табов и окон. Методику я выбрал самую простую:

– Для каждого браузера (Chrome, Firefox 2, Internet Explorer 7, Opera 9.5) открывается 10 пустых табов (то есть свежие инсталляции, без истории закладок и плагинов).
– Открывается 10 табов с одним и тем же ресурсом (я выбрал главную страницу Youtube)
– Открывается 10 отдельных окон с Youtube (окна с пустыми страницами я опустил, ничего особенного предварительные тесты не показали).
– Каждый тест повторяется 10 раз и берутся усредненные значения, если не окажется, что есть очевидные пики.Условия проведения замеров одинаковые для всех браузеров (Windows XP SP3, 32bit, Athlong 3500+, 1GB Dual RAM).В результате я получил 6 табличек cо значениями для физической и виртуальной памяти.
Потребление физической памяти на пустой выглядело так, при открытии табов:

Физическая память (MB)

Вкладки 1 2 3 4 5 6 7 8 9 10
Chrome 29* 33 33 35 36 38 38 39 40 42
Firefox 35 36 36 36 36 37 37 37 37 37
Internet Explorer 23 27 28 30 30 31 32 33 34 35
Opera 21 21 22 22 22 22 23 23 23 23

Виртуальная память (MB)

Вкладки 1 2 3 4 5 6 7 8 9 10
Chrome 21** 23 25 27 29 32 33 33 33 39
Firefox 26 26 27 27 27 27 27 27 27 28
Internet Explorer 17 20 21 22 22 23 24 25 26 26
Opera 18 18 18 19 19 19 19 20 20 20

А вот так память потреблялась при загрузке главной страницы Youtube, опять-таки 10 табов в одном окне:

Физическая память (MB)

Вкладки 1 2 3 4 5 6 7 8 9 10
Chrome 40 80 101 122 149 157 165 187 207 252
Firefox 44 49 54 59 67 70 72 78 81 91
Internet Explorer 39 51 60 71 78 88 99 108 115 127
Opera 35 39 47 53 58 63 70 77 84 89

Виртуальная память (MB)

Вкладки 1 2 3 4 5 6 7 8 9 10
Chrome 32 61 76 89 107 117 123 139 154 193
Firefox 35 39 44 50 59 61 63 68 72 82
Internet Explorer 31 42 51 62 70 81 91 99 108 118
Opera 32 37 44 51 56 61 68 75 82 87

Распределение памяти при открытии десяти табов с Youtube оказалось следующим:

  • Chrome – нерегулярно до 30% CPU, по разным процессам.
  • Firefox – постоянное использование около 20% с пиками до 50%.
  • Internet Explorer – от 20% до 50%
  • Opera – использование CPU колебалось в районе 30%

Интересно так же то, что распределение памяти между процессами было неоднородным и отличалось в пределах до 5 мегабайт для табов, плюс два процесса по 50 мегабайт (плюс минус 3). В отличие от Firefox и Internet Explorer, память не росла безостановочно.
Распределение памяти в случае 10 разных окон.

Физическая память (MB)

Окна 1 2 3 4 5 6 7 8 9 10
Chrome 41 80 101 125 138 145 167 179 204 224
Firefox 44 51 59 66 78 83 92 102 107 114
Internet Explorer 39 83 123 165 204 246 288 330 373 414
Opera 34 42 49 54 61 69 77 83 91 95

Виртуальная память (MB)

Окна 1 2 3 4 5 6 7 8 9 10
Chrome 33 62 78 94 102 110 125 131 150 165
Firefox 34 42 49 56 68 73 83 92 98 104
Internet Explorer 32 37 100 132 166 200 234 267 300 332
Opera 31 40 46 53 59 67 75 81 90 93

В общем и целом Chrome показал себя довольно прожорливым браузером по памяти (но в случае с окнами – намного лучше, чем Internet Explorer), но наиболее нетребовательным к процессору. При теперешнем росте объемов памяти, в принципе, не существенно. Браузер действительно должен работать быстрее, чем остальные. Пока память не закончится, конечно.

Но всё-таки, реально отдельные процессы создает только Internet Explorer, в Chrome (повторюсь), так или иначе всё завязано на главный процесс ядра.

По стандартам всё очень даже неплохо:

    Acid3

  • Chrome – 79
  • Opera 9.5 – 84
  • Firefox 2 – 52
  • Firefox 3 – 71
  • Internet Explorer 7.0 – я не понял сколько, картинка была сбита полностью

Acid2
Chrome, Firefox 3, Opera 9.5 – прошли.

По сегодняшним меркам очень приличный результат, но люди говорят, что некоторые страницы разъезжаются. Так что если Chrome займёт существенную долю рынка веб разработчикам и верстальщикам всё-таки придется попотеть. Впрочем, и тестировщикам тоже (меж тем Selenium, например, все еще не поддерживает Chrome).

Закончу эту часть рассказа такой вот картинкой :)

Часть 2: Google Chrome для разработчиков

2 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *