Вопрос по оптимизации.
От: paz  
Дата: 17.09.09 02:24
Оценка:
Добрый день.

Работаем над контролом по отрисовке векторных карт. За раз отрисовывается примерно 20 тысяч примитивов. На данный момент отрисовка происходит в одном методе. Для более гибкого варианта отрисовки думаем добавить объект СтратегияОтрисовки, которая будет рисовать примитивы в зависимости от типа слоя карты. Вопрос в следующем — так как стратегия абстрактная то метод отрисовки будет виртуальный. Сильно ли скажется это на производительности — отрисовка всего в одном методе или 20 тысяч вызовов виртуальных методов с передачей 5 параметров (3 объекта и 2 структуры)? Хотелось бы знать примерный проигрыш по времени.
Re: Вопрос по оптимизации.
От: blblx Россия http://yegodm.blogspot.com
Дата: 17.09.09 02:37
Оценка: 1 (1)
Здравствуйте, paz, Вы писали:

paz>Добрый день.


paz>Работаем над контролом по отрисовке векторных карт. За раз отрисовывается примерно 20 тысяч примитивов. На данный момент отрисовка происходит в одном методе. Для более гибкого варианта отрисовки думаем добавить объект СтратегияОтрисовки, которая будет рисовать примитивы в зависимости от типа слоя карты. Вопрос в следующем — так как стратегия абстрактная то метод отрисовки будет виртуальный. Сильно ли скажется это на производительности — отрисовка всего в одном методе или 20 тысяч вызовов виртуальных методов с передачей 5 параметров (3 объекта и 2 структуры)? Хотелось бы знать примерный проигрыш по времени.


Самый простой, надежный и убедительный способ — написать прототип и измерить реальные потери.
El pueblo unido jamás será vencido.
Re[2]: Вопрос по оптимизации.
От: paz  
Дата: 17.09.09 03:21
Оценка:
Здравствуйте, blblx, Вы писали:

B>Самый простой, надежный и убедительный способ — написать прототип и измерить реальные потери.


Миллион вызовов занял 13 милисекунд. можно пренебречь
Re: Вопрос по оптимизации.
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.09.09 14:21
Оценка: 6 (1)
Здравствуйте, paz, Вы писали:

paz>Добрый день.


paz>Работаем над контролом по отрисовке векторных карт. За раз отрисовывается примерно 20 тысяч примитивов. На данный момент отрисовка происходит в одном методе. Для более гибкого варианта отрисовки думаем добавить объект СтратегияОтрисовки, которая будет рисовать примитивы в зависимости от типа слоя карты. Вопрос в следующем — так как стратегия абстрактная то метод отрисовки будет виртуальный. Сильно ли скажется это на производительности — отрисовка всего в одном методе или 20 тысяч вызовов виртуальных методов с передачей 5 параметров (3 объекта и 2 структуры)? Хотелось бы знать примерный проигрыш по времени.


Конечно это очень сильно зависит от железа, но найти такой антиквариант на котором 20 тысяч вызовов будут видных в микроскоп не просто. По сведением отсюда, Core 2 Duo @ 2.66 GHz делает около 600 миллионов вызовов в секунду.

Главное, чтобы ваши методы не были дженерик-методами (см. детали по ссылке).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.