Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

MemShrink

Глава 5 из книги "Производительность приложений с открытым исходным кодом".

Оригинал: MemShrink
Автор: Kyle Huey
Перевод: А.Панин

Сообщество

Завершающим фактором успеха проекта MemShrink является поддержка огромного сообщества, сформированного вокруг продуктов организации Mozilla. В то время, как большинство (но, конечно же, не все) инженеров, работающих над Firefox, на сегодняшний день нанято на работу организацией Mozilla, огромное сформированное вокруг продуктов организации Mozilla сообщество добровольцев поддерживает проект, предоставляя помощь в тестировании, локализации, контроле качества, маркетинге и других областях, без которой проект Mozilla был бы предан забвению. Мы умышленно провели структурирование проекта MemShrink для принятия помощи от сообщества и были за это неплохо вознаграждены. Основная команда проекта MemShrink состояла из небольшой группы работающих в организации инженеров, но поддержка от сообщества, которая осуществлялась в форме отправки сообщений об ошибках, тестирования и исправления ошибок в дополнениях расширила наши возможности.

Даже в сообществе пользователей продуктов организации Mozilla вопрос потребления памяти приводил людей в уныние. Некоторые участники сообщества сами сталкивались с такими проблемами. У других участников сообщества были друзья или родственники, которые также сталкивались с подобными проблемами. Те счастливые участники сообщества, которые избежали этих проблем, без сомнения видели жалобы на потребление памяти веб-браузером Firefox в форме вопросов "Исправлена ли уже утечка памяти?" после выпуска новых релизов, над которыми они серьезно работали. Никому не будет приятно, если его сложную работу будут критиковать, особенно из-за тех технологий, над которыми вы не работали. Исправление давно существующей проблемы, с которой могла столкнуться большая часть участников сообщества, было отличным первым шагом на пути предоставления более качественной поддержки.

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

Заключительной частью мероприятий по работе с сообществом было улучшение технологии обратной связи для взаимодействия широкой общественности с разработчиками проекта MemShrink. Описанные нами ранее инструменты позволили преобразовать сообщения об ошибках, которые ранее невозможно было повторить или которые были просто забыты, в сообщения, которые должны были быть исправлены и в конце концов исправлялись. Мы также преобразовали жалобы, комментарии и отзывы о нашей работе из комментариев к сообщениям из блога в сообщения об ошибках и попытались получить необходимую для исправления описанных ошибок информацию. Все сообщения об ошибках были классифицированы и получили приоритеты. Мы также приложили значительные усилия для исследования всех сообщений об ошибках, даже тех, которые считались незначительными. Это исследование позволило сообщившим об ошибках людям считать свой труд более значимым, а также предназначалось для получения достаточной информации для того, чтобы разработчик, у которого больше свободного времени, мог приступить к исправлению описанной ошибки впоследствии. Все эти действия позволили получить значительную поддержку от участников сообщества, которые в свою очередь оказали нам значительную помощь, создавая замечательные отчеты об ошибках и предлагая бесценное содействие в тестировании.

Заключение

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

Я хотел бы поблагодарить Justin Lebar, Andrew McCreight, John Shcoenick, Jonny Stenback, Jet Villegas, Timothy Nikkel за всю их работу в рамках проекта MemShrink, а также других инженеров, которые помогали устранять проблемы с памятью. Больше всех я хотел бы поблагодарить Nicolas Nethercote за развитие проекта MemShrink, кропотливую работу над сокращением потребления памяти системой Spidermonkey, сопровождение проекта в течение двух лет, а также множество других вещей. Я также хотел бы поблагодарить Jet и Andrew за редактирование данной главы.


Вернуться к началу статьи.