Если вы используете элементы управления Автоматизации (Automation) или ActiveX в своем приложении, то можете более тонко настроить приложение для получения наилучший результатов как из элементов управления ActiveX так и из - Automation.
Эффективное применение элементов управления ActiveX
Для получения наилучшей эффективности от применении в формах элементов управления ActiveX воспользуйтесь следующими указаниями:
- Заблаговременно запустите сервера Автоматизации. Элементы управления, связанные с полями типа general, будут выполняться быстрее, если серверы для этих типов данных (типа Microsoft Excel или Word) уже запущены на клиентской машине.
- Включайте объекты в виде пиктограмм ("As Icon"). Когда вы включаете элемент управления ActiveX в поле, включите его как пиктограмму или заполнитель, а не как целый объект. Это уменьшит объем памяти, требуемой для его хранения, поскольку Visual FoxPro сопоставляет представленный образ с объектом, который мог бы потребовать много пространства для своего хранения. Кроме того, включение объекта в виде пиктограммы увеличивает производительность при его прорисовке.
- Используйте образы элементов управления. Если Вы хотите вывести побитовое отображение (bitmap) графического объекта (например, логотип компании), то помните, что образы элементов управления обрабатываются значительно быстрее, чем сами элементы управления OLEBound.
- Применяйте ручные связи всегда, когда это возможно. Ручные связи объектов выполняются быстрее, поскольку они не нуждаются во времени уведомления, необходимом для автоматических связей, и поскольку сервер не должен быть запущен для прорисовки объекта. Если вам не нужно часто корректировать объект, то используйте ручные связи.
Оптимизация выполнения Автоматизации
Если ваше приложение взаимодействует с другими приложениями, то вы можете получить наилучшие показатели, если будете использовать следующие технические приемы.
Избегайте множества экземпляров сервера (Avoiding Multiple Instances of the Server)
В некоторых случаях, серверы Автоматизации (например, Microsoft Excel) всегда будут стартовать заново, даже если один из них уже работает. Для того, чтобы избежать этого и улучшить исполнение, используйте функцию GetObject( ) вместо CreateObject( ). Например, в следующем примере всегда будет запрошен существующий экземпляр сервера Microsoft Excel, если, конечно, он существует:
![]() | |
---|---|
x = GetObject(,"excel.Application") |
А в этом случае всегда будет запрошен новый:
![]() | |
---|---|
x = CreateObject("excel.Application") |
Если вы сделали запрос функцией GetObject( ), но сервер уже не выполняется, то вы получите ошибку под номером 1426. В этом случае вы можете перехватить ошибку и запросить сервер функцией CreateObject( ):
![]() | |
---|---|
ON ERROR DO oleErr WITH ERROR() |
Referencing Objects Efficiently
Выполнение выражений, которые используют объекты сервера Автоматизации, может быть дорогостоящим, особенно с точки зрения затраченного времени. Выполнение таких выражений значительно ускорится, если сохранить ссылки на объекты в переменные и впоследствии ссылаться на них.
См. также
Ссылки
Оптимизация приложений в многопользовательской средеОптимизация доступа к удаленным данным
Оптимизация приложений
Оптимизация вашей системы