Canvas vs Labels - страница 14

 
Renat Fatkhullin:

Если читаете из сохраненного во время компиляции ресурса, то это надо делать однократно.

Читаю из динамического.

 
Mihail Matkovskij:

При этом нужно сказать, при каких входных параметрах Канвас медленный. Если limit_fps: false, то тогда понятно "и к гадалке не ходи"... :) 

А я вот просто так вчера искал limit_fps? 

 
Dmitry Fedoseev:

А я вот просто так вчера искал limit_fps? 

А что его искать? Запускайте эксперт и пробуйте делать замеры в разных режимах. Хоть с включённым limit_fps, хоть без него. И тогда всё поймёте.

Весь смысл в ограничении частоты вызовов CCanvas::TextOut и CCanvas::Update.
 
Mihail Matkovskij:

А что его искать? Запускайте эксперт и пробуйте делать замеры в разных режимах. Хоть с включённым limit_fps, хоть без него. И тогда всё поймёте.

Весь смысл в ограничении частоты вызовов CCanvas::TextOut и CCanvas::Update.

Думаешь что все так просто идиоты и все? Просто дико гонят и бредят - и это нормально? Зачем бы я его искал, если бы он был? Скачай свои файлы по тем ссылкам, которые сам давал несколько страниц назад и увидь, что там нет метода поля для установки limit_fps. Вызов есть,  а метода поля нет, поэтому не компилируется. Но если одну строчку закомментировать, то компилируется. Но я уже нашел страницу в кодабазе и скачал архив, там все на месте. Специально объясняю, а то сейчас начнете думать - как так я мог протестировать с включенным  limit_fps, если метода нет. Но кто знает, может уже и по тем ссылкам есть, может, там файлы обновляются с задержкой, 

Смысла в ограничении частоты вызовов TextOut Update при сравнении с label нет, потому что сравнение должно производиться в одинаковых условиях. 

 
Dmitry Fedoseev:

Думаешь что все так просто идиоты и все? Просто дико гонят и бредят - и это нормально? Зачем бы я его искал, если бы он был? Скачай свои файлы по тем ссылкам, которые сам давал несколько страниц назад и увидь, что там нет метода поля для установки limit_fps. Вызов есть,  а метода поля нет, поэтому не компилируется. Но если одну строчку закомментировать, то компилируется. Но я уже нашел страницу в кодабазе и скачал архив, там все на месте. Специально объясняю, а то сейчас начнете думать - как так я мог протестировать с включенным  limit_fps, если метода нет. Но кто знает, может уже и по тем ссылкам есть, может, там файлы обновляются с задержкой, 

Смысла в ограничении частоты вызовов TextOut Update при сравнении с label нет, потому что сравнение должно производиться в одинаковых условиях. 

Вы скачали просто демо версию, там ограничение FPS работает без возможности отключения. Но вам нужен эксперт для выполнения замеров! Здесь найдете все ссылки  https://www.mql5.com/ru/forum/364640/page13#comment_21314045 . Скачайте библиотеку ChartDisplay.mqh и эксперта CanvasVsLabels.mq5.

Скриншот вам в помощь

И читайте всё внимательно, прежде чем написать  очередное своё сообщение с недовольствами! :)

 
При большой скорости изменений разных свойств графических объектов и при попытке сохранить сам график, Виндоус выносило в синий экран.
 
Mihail Matkovskij:

Вы скачали просто демо версию, там ограничение FPS работает без возможности отключения. Но вам нужен эксперт для выполнения замеров! Здесь найдете все ссылки  https://www.mql5.com/ru/forum/364640/page13#comment_21314045 . Скачайте библиотеку ChartDisplay.mqh и эксперта CanvasVsLabels.mq5.

Скриншот вам в помощь

И читайте всё внимательно, прежде чем написать  очередное своё сообщение с недовольствами! :)

Вот ссылка с цитатой твоего поста в которой ты давал ссылки на скачивание файлов. Чего я там должен был читать и какой у меня был выбор? А сейчас ты уже подредактировал тот свой пост. Правда думаешь что все такие идиоты вокруг, и им так легко насрать в мозг?

Или думаешь, мне тут заняться нечем, и я сижу дикие небылицы выдумываю?

 
Nikolai Semko:
Серьёзно? 
Сюрприз для меня.
Насколько медленнее, чем копирование обычного uint массива того же размера?
#include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279

void OnStart()
{
  uint Data[];
  
  ArrayResize(Data, 1e6);

  const string Name = "::" + __FILE__;
  
  for (int i = 0; i < 10; i++)
    _B(ResourceCreate(Name, Data, ArraySize(Data), 1, 0, 0, ArraySize(Data), COLOR_FORMAT_ARGB_NORMALIZE), 100);
    
  uint Width;
  uint Height;
  
  for (int i = 0; i < 10; i++)
    _B(ResourceReadImage(Name, Data, Width, Height), 1);
  
  ResourceFree(Name);
}


Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 1973 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 891 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 1226 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 1232 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 940 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 940 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 924 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 917 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 925 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 932 mcs.

Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2575 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2442 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 7473 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2308 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2955 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2883 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2715 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2842 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2755 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2304 mcs.

Тормоза на лицо. Да и запись показывает, что 1000 FPS - потолок.

 
fxsaber:


Тормоза на лицо. Да и запись показывает, что 1000 FPS - потолок.

Разберемся, странно как то

 
Dmitry Fedoseev:

Вот ссылка с цитатой твоего поста в которой ты давал ссылки на скачивание файлов. Чего я там должен был читать и какой у меня был выбор? А сейчас ты уже подредактировал тот свой пост. Правда думаешь что все такие идиоты вокруг, и им так легко насрать в мозг?

Или думаешь, мне тут заняться нечем, и я сижу дикие небылицы выдумываю?

Вот именно, по той ссылке я написал, откуда скачивать.

Mihail Matkovskij:

Скачайте файлы в папках \MQL5\Experts\canvas-vs-labels\measurement\cyberdev\ и \MQL5\Experts\canvas-vs-labels\measurement\ в КБ. Для ограничения fps установите limit_fps в true во входных параметрах. Файл: CanvasVsLabels.mq5. Как запускать тест показано выше. И в КБ есть описание.

Что этого вам было недостаточно?! Тогда вы в исходниках не разобрались, даже как их запускать. Хоть я с их помощью замеры уже сделал и опубликовал результаты выше. Сейчас, скачали нужные исходники? Запустили? Если нет, то идите и изучите хотя бы основы программирования. Потому что это же невозможно!... Если вы даже не умеете собрать приложение из готовых исходников, то о чём дальше можно говорить...

Прилагаю скомпилированный файл эксперта. Если и после этого у вас будут проблемы с его использованием, то и вправду, идите учитесь. Начиyайте с основ: что такое переменная, что такое функция и что такое программа! И дальше по нарастающей!...


<*.ex* файл удален>