Увеличение производительности в Excel 2010
Не так давно мы провели специальное исследование и разработку ресурсов по повышению производительности. Помимо обычной оптимизации и настройки, которые мы произвели по завершении программирования, во время самой разработки мы потратили время на исследование, проектирование и интеграцию функций быстродействия за пределами алгоритмической настройки. Вот те области, к которым мы приложили усилия по улучшению производительности в этом релизе:
- Отзывы пользователей
- Сценарии больших объемов данных
- Вычисления
- Преимущества многоядерности
Как вы уже слышали от нас, команда разработчиков 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) описал значительные изменения в производительности диаграмм в недавней
Решения VBA
Другая область пользовательских отзывов о быстродействии в Excel 2007 была связана с объектной моделью VBA. Некоторые способы, которыми OM управлял Excel, вызывали проблемы производительности, которые попросту не были заметны при простой загрузке и взаимодействии с Excel. Например, введение значений в ячейки было отзывчивым и быстрым. Но запуск VBA-кода для обновления 100 тысяч ячеек с новыми значениями значительно замедлял Excel 2007.
После получения большего числа файлов-примеров от вас мы смогли запустить, проанализировать, исправить, вновь запустить и продолжить вносить исправления в эту область. Вот наши достижения:
График показывает, что примерно в 70% файлов в нашем наборе решений VBA (файлах, которые прислали нам вы) при запуске в Excel 2010 значительно увеличивается быстродействие, при этом примерно 30% этих решений сокращают время Excel 2007 почти вдвое, если не больше.
Закрытие Excel
Другая, чуть менее значительная проблема производительности Excel 2007 заключается во времени, необходимом для закрытия и освобождения памяти для работы с другими программами, особенно после закрытия действительно громоздких файлов. В Excel 2010 мы встроили механизм быстрого выключения, и я надеюсь, что вы останетесь им довольны
В следующей статье мы рассмотрим улучшения производительности, которые мы сделали в сценариях крупных объемов данных, вычислении и многоядерности.
Источник:
Перевод: Sibiryak
По теме
- [Temp] Доступ к вашим Office файлам с любого компьютера с Windows Live SkyDrive
- Еще несколько слов о совместной работе в веб-приложении Excel
- BI-функции в Excel 2010
- [Временный пост] Настройка SharePoint Server 2010 для доступа с мобильных устройств
- Поиск информации с телефона
- Получите Office сегодня или завтра
- [Временный пост] Как данные об использовании улучшают взаимодействие пользователя с Office
- [Временный пост] Office 2010 и AppV 4.6
- [Временный пост] Понимание 64-битной версии Office
- Windows Touch и Excel 2010