Увеличение производительности в Excel 2010

Автор: Topol Четверг, Май 3rd, 2012 Нет комментариев

Рубрика: Операционные системы

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

  • Отзывы пользователей
  • Сценарии больших объемов данных
  • Вычисления
  • Преимущества многоядерности

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

В этой статье я расскажу о первом пункте: какие меры мы предприняли, чтобы учесть отзывы пользователей о быстродействии Excel 2007.

Улучшение быстродействия на базе отзывов пользователей
Office 2007 был для нас крупным релизом, включившим большое число архитектурных нововведений, которые привели к новым значительным возможностям. Мы увеличили размер таблицы (теперь 1,048,576 строк на 16,384 столбцов), сняли ряд ограничений в продукте, ввели новую замечательную графическую платформу и занялись обновлением возможностей диаграмм, встроили новый пользовательский интерфейс, значительно расширили концепцию использования стилей и выпустили Excel Services, которые для точности используют совместный с клиентом Excel код. Мы понимали, что быстродействие новой архитектуры очень важно, так что мы потратили уйму времени, работая над производительностью в Excel 2007. К моменту выпуска Excel 2007 мы исправили ключевые проблемы производительности, обнаруженные во время разработки, но мы также знали, что когда пользователи начнут использовать Excel 2007, мы получим дополнительные отзывы о производительности. И мы их получили.

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

Мы собрали так много пользовательских отзывов, как только смогли, для определения проблем, с которыми сталкиваются пользователи. Я также искал в сети комментарии людей о быстродействии Excel 2007. Еще раз спасибо всем, кто снабжал и продолжает снабжать нас своими отзывами и примерами файлов. Все ваши файлы, которые были собраны, запущены, проанализированы и вновь запущены (несколько раз подряд), помогли нам выработать приоритеты и исправить ряд наиболее частых проблем.

Вот ключевые области в категории отзывов пользователей, в которых мы работали над производительностью в Excel 2010:

Режим разметки
Режим разметки полагается на информацию принтера и рассчитывает информацию разметки с целью отобразить страницу так же, как бы это сделал принтер. К сожалению, Excel 2007 тратит много времени на общение с принтером и выполнение этих расчетов. В результате, элементарные задачи, наподобие ввода данных в таблицу, потенциально могут выполняться значительно медленнее.

Если принтер, установленный по умолчанию, окажется выключен, Excel 2007 будет ожидать ответа прежде, чем у него восстановиться отзывчивость.

Чтобы исправить эти проблемы, Excel 2010 кеширует настройки принтера. Кроме того, мы дополнительно оптимизировали вычисления, связанные с отображением. Мы также сделали подключение к принтеру отменяемым, так что управление остается в руках пользователя.

Фигуры
Приличное число проблем быстродействия в Excel 2007 связаны с большим количеством фигур на странице (часто это связано в связи со скрытыми фигурами, результатом копирования/вставки из веб-страницы). Команда разработчиков графики Office внимательно рассмотрела эти сценарии и проделала много работы, чтобы повысить производительность в этой области.

Кроме того мы обратили внимание на быстродействие модели объекта фигуры (англ. shape object model) «*.select» и произвели там значительные улучшения. График ниже показывает, сколько времени занимает исполнение следующего кода, обновляющего 300 текстовых полей с текстом «chad», в Excel 2007 против бета-версии Excel 2010.

Код:
For i = 1 To 300
ActiveSheet.Shapes(i).Select
Selection.Characters.Text = «chad»
Next i

 

Как видите, по сравнению с Excel 2007 мы добились значительных успехов в этой области.

Диаграмма
Бен Рампсон (Ben Rampson) описал значительные изменения в производительности диаграмм в недавней статье в блоге Excel.

Решения VBA
Другая область пользовательских отзывов о быстродействии в Excel 2007 была связана с объектной моделью VBA. Некоторые способы, которыми OM управлял Excel, вызывали проблемы производительности, которые попросту не были заметны при простой загрузке и взаимодействии с Excel. Например, введение значений в ячейки было отзывчивым и быстрым. Но запуск VBA-кода для обновления 100 тысяч ячеек с новыми значениями значительно замедлял Excel 2007.

После получения большего числа файлов-примеров от вас мы смогли запустить, проанализировать, исправить, вновь запустить и продолжить вносить исправления в эту область. Вот наши достижения:

График показывает, что примерно в 70% файлов в нашем наборе решений VBA (файлах, которые прислали нам вы) при запуске в Excel 2010 значительно увеличивается быстродействие, при этом примерно 30% этих решений сокращают время Excel 2007 почти вдвое, если не больше.

Закрытие Excel
Другая, чуть менее значительная проблема производительности Excel 2007 заключается во времени, необходимом для закрытия и освобождения памяти для работы с другими программами, особенно после закрытия действительно громоздких файлов. В Excel 2010 мы встроили механизм быстрого выключения, и я надеюсь, что вы останетесь им довольны

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

Источник: thevista.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты