My approach. The core is the engine. - page 148

 
Oleg Papkov:

Could be a mismatch: both EA and engine, 1 - both transmit to each other, 2 - both receive, their OnTimer cycles are out of sync. Waiting for the moment of random synchronisation to work normally. Could this be the reason?

Processor load is up to 40%. It's not critical and hardly slows down, but I still don't like it. The reason is not clear yet. The ResourceReadImage function and initialization of the array are slow inside the drawing block. If I comment out the loop, it slows down ResourceReadImage, if I comment out ResourceReadImage, it slows down the loop. Moreover, separately they load the processor by 50%, but together they load the processor by 40%. What a load...

 

I want to reduce the frequency of text messages between the engine and the EA to 5 times per second (200ms). A person does not have time to grasp the meaning of changing numbers any faster anyway. Therefore, a change rate of 30ms makes no practical sense.

Other messages, such as animations and control events, will come in at 30ms.

 
Реter Konow:
Oleg Papkov:

Could be a mismatch: both EA and engine, 1 - both transmit to each other, 2 - both receive, their OnTimer cycles are out of sync. Waiting for the moment of random synchronisation to work normally. Could this be the reason?

Processor load is up to 40%. It's not critical and hardly slows down, but I still don't like it. The reason is not clear yet. The ResourceReadImage function and initialization of the array are slow inside the drawing block. If I comment out the loop, it slows down ResourceReadImage, if I comment out ResourceReadImage, it slows down the loop. Moreover, separately they load the processor by 50%, but together they load the processor by 40%. It just doesn't make any sense.

I can't help it. I'm not good at this subject. How about Googling? Search for "speed of resourcereadimage mql4".

 
Oleg Papkov:

I can't help you with that. I'm not good at this subject. How about a Googl search? Search for "speed of resourcereadimage mql4".

Thanks, but google won't help here)). I have almost normalized the GUI response. I haven't figured out the reason till the end. I will now split the baud rate for different message types, which will eventually improve communication even more. Then, I'll send you the new engine.

 
Реter Konow:

Thanks, but google won't help here.) I've almost normalised the GUI response. Didn't fully understand the reason. I will now split the baud rate for different types of messages, which will eventually improve communication even more. Then, I'll drop you a new engine.

Got it.

 

Well, it's not slowing down now. Although CPU load at 30ms is ~40%. That said, it's possible that it will increase when the redraw area is increased (although not certain). Need to check with large table.

So far this is the result of engine with EA in the tester, at test speed 31.

(Click to view)


It is important that processor load drops immediately when window is closed.

 
In short, I'll put it together - we'll see. Take your time with a few copies?
 
Oleg Papkov:
Anyway, I'll put it together and see. No rush with multiple copies?

No. I think I've figured out the reason. I'll check it out today. Then I'll make it possible to work with several copies.

 

The output speed of the tables is regulated to reduce the idle load on the processor.

At maximum speed of data output, a person does not have time to evaluate the data. There was a need to slow down the data flow to improve perception.

Now, in the standard menu of the Engine there is a new item "Set Values Change Delay", which brings up a window with a speed slider.

By moving the slider, you can adjust the speed of data output, and achieve acceptable for perception rhythm of changing values.

It is important that the values themselves change independently of the slider, but the output speed to the tables is set by the user.


 
Реter Konow:

The output speed of the tables is regulated, to reduce the idle load on the processor.

At maximum speed of data output, a person does not have time to evaluate the data. There is a need to slow down the data flow to improve perception.

Now, in the standard menu of the Engine there is a new item "Values Change Speed Controller", which brings up a window with the speed controller.

By moving the slider, you can adjust the speed of data output, and achieve an acceptable for perception rhythm of changing values.

It is important that the values themselves change independently of the slider, but the output speed of the tables is set by the user.


Usually it is customary to move the slider to the left to decrease values and to the right to increase values. You have it the other way round. Truly Nikolai hinted - you have everything in protest against all that is generally accepted.