Canvas vs Labels - page 14

 
Renat Fatkhullin:

If you read from a stored resource at compile time, you have to do it once.

I read from a dynamic one.

 
Mihail Matkovskij:

You have to say at which input parameters Kanvas is slow. If limit_fps: false, then it's a no-brainer... :)

Was I just looking forlimit_fps yesterday?

 
Dmitry Fedoseev:

Was I just looking forlimit_fps yesterday?

What's there to look for? Run the Expert Advisor and try it in different modes. Withor without limit_fps enabled.And then you will understand everything.

The whole point is to limit how often CCanvas::TextOut and CCanvas::Update are called.
 
Mihail Matkovskij:

What's there to look for? Run the Expert Advisor and try to take measurements in different modes. Withor without limit_fps enabled.Then you'll understand everything.

The whole point is to limit how often CCanvas::TextOut and CCanvas::Update are called.

You think everyone is just an idiot and that's it? Just wild and delusional - and that's normal? Why would I look for it if there was one? Download your files from those links you gave yourself a few pages ago and see that there is no field method to set limit_fps. The call is there, but the field method isn't, so it doesn't compile. But if you comment out one line, it compiles. But I've already found the page in the codebase and downloaded the archive, everything is there. I'm explaining it deliberately, otherwise you may start thinking how I could test this way with limit_fps enabled when there is no method. But who knows, maybe those links already have it, maybe files update with delay there too,

There's no point in limiting thefrequency ofTextOut Updatecallswhen comparing with label, because the comparison must be done under the same conditions.

 
Dmitry Fedoseev:

Do you think everyone is just so idiotic and that's it? Just wild and delusional - and that's normal? Why would I be looking for it if there was one? Download your files from those links you gave yourself a few pages ago and see that there is no field method to set limit_fps. The call is there, but the field method isn't, so it doesn't compile. But if you comment out one line, it compiles. But I've already found the page in the codebase and downloaded the archive, everything is there. I'm explaining it deliberately, otherwise you may start thinking how I could test it with limit_fps enabled when there is no method. But who knows, maybe those links already have it, maybe files update with delay there too,

There isno point in limiting thefrequency ofTextOut Updatecallswhen comparing to label, because the comparison should be done under the same conditions.

You just downloaded a demo version, there FPS limitation works without possibility to turn it off. But you need an expert to do the measurements! You can find all the links here https://www.mql5.com/ru/forum/364640/page13#comment_21314045 . Download ChartDisplay.mqh library and CanvasVsLabels.mq5 expert.

Here is a screenshot to help you

And read everything carefully before you write your next message with dissatisfaction! :)

 
At high rates of change in the various properties of graphical objects and when trying to save the graph itself, Windows would throw up a blue screen.
 
Mihail Matkovskij:

You just downloaded the demo version, the FPS limit works there without the option to turn it off. But you need an expert to take measurements! Here you can find all links https://www.mql5.com/ru/forum/364640/page13#comment_21314045 . Download ChartDisplay.mqh library and CanvasVsLabels.mq5 expert.

Here is a screenshot to help you

And read everything carefully before you write your next message with dissatisfaction! :)

Here's a link with a quote from your post where you gave links to download files. What was I supposed to read there and what choice did I have? And now you've already edited that post of yours. Do you really think everyone is such an idiot and it's so easy for them to shit on their brains?

Or do you think I have nothing better to do and I'm sitting here making up wild stories?

 
Nikolai Semko:
Really?
Surprise for me.
How much slower than copying a normal uint array of the same size?
#include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279

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

  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.

The lags are obvious. And the recording shows that 1000 FPS is the ceiling.

 
fxsaber:


The brakes are in your face. Yes and the recording shows that 1000 FPS is the ceiling.

We'll figure it out, it's weird.

 
Dmitry Fedoseev:

Here's a link with a quote from your post in which you gave links to download files. What was I supposed to read there and what choice did I have? And now you've already edited that post of yours. Do you really think everyone is such an idiot and it's so easy for them to shit on their brains?

Or do you think I have nothing better to do and I'm sitting here making up wild stories?

Exactly, at that link I wrote where to download from.

Mihail Matkovskij:

Download files in \MQL5\Experts\canvas-vs-labels\measurement\cyberdev\ and \MQL5\Experts\canvas-vs-labels\measurement\ in KB. To limit fps, set limit_fps to true in the input parameters. file: CanvasVsLabels.mq5. How to run the test is shown above. And there is a description in KB.

That was not enough for you! Then you did not understand the source code, even how to run it. Even though I've already measured them and published the results above. Now, did you download the source code? Run it? If not, then go and study at least the basics of programming. Because it's impossible! If you don't even know how to build an application from ready-made sources, what more we can say...

I am attaching the compiled file of Expert Advisor. If you still have problems using it, you really should learn how to use it. Start with the basics: What is a variable, what is a function, and what is a program! And then it goes on and on!


<*.ex* file deleted

Reason: