[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Per Chart Refresh Rates



PureBytes Links

Trading Reference Links

Hi Tomasz, I thought I'd start a new thread on this topic as I think it's an interesting one.

Tomasz wrote in the "Data And PlugIn Speed" thread
> I may add that the concept of independent rendering from multiple threads although attractive from first look, it inevitably hits the wall of GDI which in all current versions of Windows has
single system-wide exclusive global lock, which means that only ONE thread can actually render at one time. This means that adding threads does not give you better performance.

In response to that Tomasz,
you're referring to performance on the basis of multiple charts being rendered per refresh update.
E.g. If you have ten charts on screen, and they take a total of 2 seconds to render, then there's little performance gain to be had by threading them because of the GDI lock. That is fine and I get that. 

But what I'm referring to is the ability to control which charts render when, so that all ten don't have to be updated every refresh. 
The problem is that in real time mode with the refresh interval set to 0 in the preferences, if I have a tick chart that only takes 10ms to update, it's still only going to be rendered every 2 seconds because that's how long the other nine charts take to render, even though I don't need them to be updated multiple times per second, but maybe only once every 5 seconds or even every minute.

If we could set refresh rates per chart, then you could have time critical tick charts update as fast as possible, and longer timeframe or more time expensive/less critical charts only update every 5 seconds or even longer.

By staggering chart updates, traders would have much greater control over performance and not waste so much processing power updating charts that don't need to be. This would trounce any other kind of performance improvement that could be gained by optimizing the rendering engine itself, and would require no threading or any real change to the current architecture that I can see.

Moreover, it appears this functionality is already in AB, but just that there's no way for the user to control it.
The requestTimedRefresh() function enables you to update only the chart it is applied to, so they can obviously be rendered independently of each other.

The problem though is that it is not enforceable. If I specify a refresh interval of 1 in the preferences, and then requestTimedRefresh(10) on a chart, that chart still gets updated every second along with all the others, and then once more after ten seconds.

Giving the option to make requestTimedRefresh() enforceable would be one way of enabling this functionality. Perhaps add an enforceable parameter to the function like:
requestTimedRefresh(10, onlyvisible=True, enforceable=false).
Then if I specify requestTimedRefresh(10, true, true), that chart should only update every 10 seconds, irrespective of what I've set in the preferences.

Would this be as easy to implement as I think it is? If so, I think the benefits would be rather large.

Jules.



------------------------------------

**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to 
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/