Почему надстройка Excel VSTO работает медленнее на компьютере с более высокой спецификацией? - PullRequest
4 голосов
/ 01 апреля 2009

Я разработал надстройку для Excel 2003 на C #, используя VSTO и VS 2008. Надстройка прекрасно работает на моей машине (ноутбук HP NC6320, 3 ГБ ОЗУ T5600, 1,8 ГГц процессор Core2), однако при тестировании на других пользователях машина (ноутбук HP nc6710b 2 Гб оперативной памяти, процессор T7200 2 ГГц Core2), это существенно медленнее. Я также попробовал это на другом ноутбуке того же типа, что и мой, и это также быстро

Я прошел через очевидные вещи, такие как запуск приложений, антивирусные программы и т. Д. Машины полностью исправлены и обновлены.

По сути, то, что делает надстройка: 1. Чтение данных из базы данных SQL Server 2005 2. Сделайте некоторые манипуляции на нем 3. Отобразите его на листе и отформатируйте соответствующим образом

Медленный бит - это отображение на листе.

Я озадачен тем, почему это будет медленнее на более новой машине .. Просто, чтобы действительно запутаться, я попробовал это на ВМ (VMware Workstation v6.5) с 256 МБ ОЗУ и 1 процессором, запустив XP только Office 2003 установлен на нем, и это было существенно быстрее, чем новый ноутбук.

Итак, в общем, надстройка Excel работает быстро на ВМ с низкой спецификацией и на старом ноутбуке, но на ноутбуке с новыми спецификациями она медленнее.

Любые предложения будут с благодарностью приняты?

Большое спасибо

Ник

редактирование:

Хорошо, Я проверил драйверы принтера, они одинаковы ... Я проверил уровни фрагментации, и, если что-нибудь, более быстрая машина менее фрагментирована, чем более медленная ..

Смотрю на настройки событий ..

Ответы [ 9 ]

6 голосов
/ 07 апреля 2009

Вы также можете добавить

Application.EnableEvents = False  

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

4 голосов
/ 07 апреля 2009

Убедитесь, что на медленном компьютере не установлены надстройки XLA или COM (например, надстройка Google Office) или какой-либо другой потенциально опасный код в Personal.XLS и т.д.

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

1 голос
/ 11 апреля 2009

Между быстрым компьютером и медленным компьютером я замечаю одну вещь - 1 ГБ ОЗУ. Вы проверили использование памяти на машинах во время работы приложения? Я знаю, что 1 ГБ оперативной памяти добился некоторого серьезного прогресса (по крайней мере, в моем восприятии) скорости способности компьютеров что-либо делать.

1 голос
/ 09 апреля 2009

Обновление офиса до последней версии (см. Веб-сайт Microsoft / Центр обновления Майкрософт).

Проверьте версию установленного VSTO / PIA ...

Проверьте установленный плагин office / excel.

Используйте профилировщик, чтобы увидеть, какой вызов медленный.

0 голосов
/ 14 апреля 2009

На некоторых компьютерах установлена ​​32-битная ОС, а на других - 64-битная ОС? Смешивание 32- и 64-битного кода приведет к дополнительным издержкам?

0 голосов
/ 14 апреля 2009

Проверьте, сколько файлов в% temp% на каждой машине.

0 голосов
/ 14 апреля 2009

Если на компьютерах установлена ​​операционная система Vista, вы можете перейти к информации о системе (самый быстрый способ получить это - клавиша Windows + пауза; не знаете, как добраться до медленного пути через панель управления). Он покажет набор из пяти показателей производительности: производительность памяти, производительность жесткого диска, производительность графики и т. Д. Сравните эти цифры на двух компьютерах; это может быть связано с тем, что на «более новой» машине ОЗУ медленнее, или на жестком диске медленнее.

0 голосов
/ 09 апреля 2009

Проверьте драйвер принтера, который вы настроили на обеих машинах. Фактически, чтобы исключить это, переключитесь на один из файловых драйверов (например, Microsoft XPS). У меня были некоторые проблемы с тем, что Word много лет занимался тем, что основывалось на драйвере принтера, и Word должен проверить, на что способен принтер в некоторых ситуациях.

0 голосов
/ 01 апреля 2009

Я встречал новые ноутбуки с более высокими характеристиками, которые имеют ужасную производительность жесткого диска. У вас также может быть фрагментация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...