Тестирование производительности работы с отдельными текстовыми метками и битмапами на чарте - страница 3

 
Renat:

Выложил дополненный тест. Теперь он показывает используемое разрешение и с подсказкой как надо тестировать.

ну вобщем то так и делаем.
 
sergeev:


вобщем по всем тестам видно, что битмапы как то медленнее.

+ у меня сомнения по корректности наличия  чтения координаты метки. зачем проверка конвеера?

Вообще-то тесты показывают, что не медленнее. Как минимум, на современных процах.

Вот мой результат на i7-3770S, Windows 8 x64, 16 RAM, NVIDIA GeForce GT 640M:

2013.04.27 22:21:50     BenchmarkLabel (EURUSD,M15)     Тестирование завершено
2013.04.27 22:21:50     BenchmarkLabel (EURUSD,M15)     5. Время обновления текста и позиций у битмапа без прозрачности = 15007 ms
2013.04.27 22:21:35     BenchmarkLabel (EURUSD,M15)     4. Время обновления текста и позиций у битмапа с прозрачностью = 15257 ms
2013.04.27 22:21:20     BenchmarkLabel (EURUSD,M15)     3. Время обновления текста и позиций у меток со чтением = 16739 ms
2013.04.27 22:21:03     BenchmarkLabel (EURUSD,M15)     2. Время обновления текста и позиций у меток без чтения = 18845 ms
2013.04.27 22:20:44     BenchmarkLabel (EURUSD,M15)     1. Время обновления текста у меток без чтения = 21497 ms
2013.04.27 22:20:23     BenchmarkLabel (EURUSD,M15)     0. Время разогрева динамических очередей без визуализации = 124 ms
2013.04.27 22:20:23     BenchmarkLabel (EURUSD,M15)     Для корректного теста подберите размер окна 1024 x 768 пикселей, без индикаторов, не трогайте ничего, не сворачивайте и не закрывайте окна
2013.04.27 22:20:23     BenchmarkLabel (EURUSD,M15)     Разрешение чарта: 1020 x 761 пикселей

У битмапа 15 257 мс со всеми прозрачностями против 21 497 мс у меток.

Проверка конвейера важна, так как в реальной работе часто используется чтение параметров объектов перед их изменением. И чем чаще происходит смешение read/write у объектов, тем медленнее будет работать модификация объектов. Лучшая стратегия изменения объектов - это сначала массово читать, а потом массово писать, не допуская смешения. Особенно, если у тебя тысячи объектов на чарте.


Самый главный результат теста - нет никакого кратного, десятикратного или пятидесятикратного отставания у битмапов. Даже если и может быть отставание как в замерах выше (но и к ним есть вопросы по размеру и конфигурации рабочего чарта), то они в пределах десятка процентов.

Но при всем этом у битмапа есть огромная перспектива скорострельности при увеличении количества объектов, увеличение качества отрисовки (включая прозрачность) и возможность отобразить все что захочешь.

 

Можно ещё быстрее настроить:

1. Сократить окно чарта, чтобы создаваемая канва на ~100% его покрывала.

2. Установить монохромную схему цветов чарта (через свойства -> цвета -> цветовая схема)/

3. Уменьшить масштаб чарта до минимального (свечки максимального размера).

 

Но. Как вы можете видеть, хотя абсолютные цифры бенчмарка будут ниже, их относительные величины будут +/- те же.

 

Обратите внимание, как из-за какого-то компонента компа производительность смешанной работы с объектами просела в 3 раза (тест sanyooooook):

:

Скорее всего виноваты процессор (блокировки его убили?) и память. Интересно узнать, какой процессор использовался.

А может просто в момент этого теста компьютер нагружали или дергали экран.

 
sergeev:

но графики я бы рисовал битмапом. ибо вариантов нет :) также многообъектные таблицы.

у битмапа не меньше преимуществ, чем у объектов.

Согласен. Каждый компонент хорош для своих целей. Битмап незаменим, например, в рисовании элементов интерфейса. Ну, нет больше других вариантов.

А вот метками быстрее/экономичнее выводить статистику. :)

 
voix_kas:

Но. Как вы можете видеть, хотя абсолютные цифры бенчмарка будут ниже, их относительные величины будут +/- те же.

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

Ваш результат с 2355 мс в одном из тестов ведь как раз был вызван скрытием/сворачиванием/переключением окна терминала во время теста:

2013.04.27 20:09:37     BenchmarkObjects (EURUSD,M5)    5. Время обновления текста и позиций у битмапа без прозрачности = 12558 ms
2013.04.27 20:09:24     BenchmarkObjects (EURUSD,M5)    4. Время обновления текста и позиций у битмапа с прозрачностью = 12839 ms
2013.04.27 20:09:11     BenchmarkObjects (EURUSD,M5)    3. Время обновления текста и позиций у меток с чтением = 2355 ms
2013.04.27 20:09:09     BenchmarkObjects (EURUSD,M5)    2. Время обновления текста и позиций у меток без чтения = 10655 ms
2013.04.27 20:08:58     BenchmarkObjects (EURUSD,M5)    1. Время обновления текста у меток без чтения = 10359 ms
2013.04.27 20:08:48     BenchmarkObjects (EURUSD,M5)    0. Время разогрева динамических очередей без визуализации = 124 ms
 
Вы удивитесь, но у меня данный тест (№3) не проходит. Отписал в СД (#732578). Точнее, проходит в одном случае из десятка. Никаких уведомлений и ошибок в журнале. Просто терминал виснет на время прохождения данного теста.
 
papaklass:

Мой тест на десктопе

Да, Ренат, ну и разрешение Вы выбрали. Я после 1920 Х 1080 не сразу все находил на экране. Сечас на ноуте прогоню.

Спасибо за результаты. Тоже битмапы получаются быстрее.

 
voix_kas:
Вы удивитесь, но у меня данный тест (№3) не проходит. Отписал в СД (#732578). Точнее, проходит в одном случае из десятка. Никаких уведомлений и ошибок в журнале. Просто терминал виснет на время прохождения данного теста.
Спасибо, будем разбираться.
 
Renat:

Обратите внимание, как из-за какого-то компонента компа производительность смешанной работы с объектами просела в 3 раза (тест sanyooooook):

:

Скорее всего виноваты процессор (блокировки его убили?) и память. Интересно узнать, какой процессор использовался.

А может просто в момент этого теста компьютер нагружали или дергали экран.

при первом тесте переключил окно, при втором вообще ни чего не трогал, параллельно работает МТ4 в нём скрипт запущен чарт строиться ну и ещё несколько процессов которые могут грузить комп )