Login Page - Create Account

Support Board


Date/Time: Thu, 06 Feb 2025 05:08:58 +0000



[Locked] - Versions 2712, 2713 | New Timer Functionality and Apparent Performance Issues

View Count: 1697

[2024-12-03 02:22:26]
Sierra_Chart Engineering - Posts: 18297
We have had numerous reports of, apparent "performance" issues, in version 2712 and also this would be applicable to 2713 as well. This also applies to pre-releases 2702 and higher.

Update: We want to say this loud and clear. There are definitively no performance issues at all in newer versions of Sierra Chart. None at all. It is the exact opposite. Newer versions deliver better performance. That is fact. There are performance improvements, with rectangle drawings, the DOM graph, lower operating system resource usage.

Sierra Chart has new timer functionality as explained here:
https://www.sierrachart.com/index.php?page=doc/Whats_New.php#SCVer2702

This was being developed in the pre-releases, and when we were confident that everything was working well, we released 2712 as the main release. However, some users were continuing to notice apparent performance issues.

In the version notes for 2712 we said this:
Resolved 2 issues with the new Sierra Chart timer functionality. The first issue, is that this was not implemented properly:
"Sierra Chart generated timer events, will be dropped/ignored for charts when the chart is not able to be updated as often as the Chart Update Interval. For example, if the Chart Update Interval is 10 ms, which would mean this is 100 updates per second, and a chart is taking 100 ms to calculate and draw at each update, then the most number of events that can occur would be less than 10 per second. Therefore, at least 90 or more of the Chart Update timer events in a second would be ignored in this scenario."

So the timer events were actually not getting ignored. They are now ignored as explained. This is now resolved. One thing to be aware of is that with the new Sierra Chart timers which were released with version 2702, but before version 2712, in the case where you were noticing what seemed to be a performance impact, it means you are using too low of a Chart Update Interval and under the Windows-based timers, a very large number of those timer events were just getting ignored. Which means there was no benefit to using a lower update interval.

We have determined that there still was a mistake where the intended design, was still not implemented properly. This is now resolved in 2714. Which is now released.

Update with Help >> Download Current Version:
Software Download: Fast Update

The mistake, was that when we were determining the completion time, of a timer event in a chart, we were using the time that was captured at the beginning of the processing and not getting the time again from the operating system after the processing was finished. Therefore, if someone is using a 10 ms update interval, as soon as the chart completed its processing and that took 10 ms, essentially immediately thereafter there may have been another timer event, causing the chart update. So therefore, Sierra Chart was put under a high load due to so many chart updates.

And as we have said again and again, increasing the Chart Update Interval is the solution. And all of these changes that we are making essentially are automatically increasing the Chart Update Interval to not cause a problem. If you are using a very low chart update interval which is under 50 ms. So many of these events are just not getting followed and getting dropped. This causes unnecessary processing.

In summary, if you are noticing a performance issue in Sierra Chart from 2702 or higher, update to version 2714 and this issue will be resolved. Sierra Chart, will automatically effectively increase the Chart Update Interval as needed, to avoid a performance issue.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2024-12-03 19:47:23
[2024-12-03 16:40:15]
Sierra_Chart Engineering - Posts: 18297
Based on user feedback we are still going to make further improvements/changes.

Basically, what we have to do is automatically increase the Chart Update Interval, which is already the case, but we have to do this even more , when that interval is beyond the capabilities of a CPU core, based on the chart configuration you are using.

We are also going to implement, immediate updating of the chart graphics, after submitting or modifying or canceling an order. So you do not need to use a low update interval to see the change of the order lines.

It is not going to make sense to ever use a Chart Update Interval low like 10 ms. If you are having a problem then this is just simply too low. Clearly the consequence of that, is now visible to many users. That interval was never getting followed. The operating system was dropping a very large percentage, a majority of those events. Probably > 90% are getting dropped.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2024-12-03 18:25:59
[2024-12-03 18:31:45]
Sierra_Chart Engineering - Posts: 18297
Newer versions of Sierra Chart are delivering higher performance. There is decreased resource usage which does help performance. There were multiple performance improvements with the DOM Graph functionality.

This is strictly an issue with too low of a Chart Update Interval which you have immediate control over at this time. All that we are going to be working on is further automatic management of that interval to increase it. We simply have to increase it and cause significantly less, chart and Trading DOM updates.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2024-12-03 18:32:30
[2024-12-03 19:44:34]
Sierra_Chart Engineering - Posts: 18297
We want to say this loud and clear. There are definitively no performance issues at all in newer versions of Sierra Chart. None at all. It is the exact opposite. Newer versions deliver better performance. That is fact. There are performance improvements, with rectangle drawings, the DOM graph, lower operating system resource usage.

The issue, is the consequence of using to low of a Chart Update Interval. 2715 has been released. Update to that if you are having a problem. It overrides the Chart Update Interval and sets it appropriately for each chart dynamically. More work is to be done on this.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2024-12-03 19:46:07
[2024-12-04 04:44:00]
Sierra_Chart Engineering - Posts: 18297
First, the changes with the timer functionality were only released as prereleases and once we were confident everything was fine, did we release of the Sierra Chart timer functionality which completely eliminates Windows resources related to timers, as the main release.

Sierra Chart timers have been used, now for at least 4-5 months in our server environments. They are completely stable. All of our order routing processes use these. Including for the CME, which has sub millisecond order routing. There is a very significant performance gain due to the elimination, of Windows resources. All of our server processes benefited very significantly from this.

In the first post we described, an error in the implementation due to an oversight. We did do testing, but when there are so many events occurring in real time, and we observe that dropping of timer events is working apparently as intended, we it did not realize there was this implementation error.

Even after fixing this error, users are still reporting higher CPU usage as the result of, more frequent updating of charts. Correcting this did not seem to make much difference.

More importantly we notice no freezing issues or any type of issues even when using a global chart update interval of 10 ms and 50 charts and some of them complex. Everything is just operating fine.

Although we acknowledge we do not have multiple high resolution screens with many complex charts visible at the same time.

We do not deny what users are telling us, but we are just very puzzled by it.

We have now released version 2716 and we would like to know how that works.

There are two new settings in Global Settings >> General Settings >> General >> Update Intervals >> Timer Management. We will try to get these documented before morning.

And we will document the complete "theory of operation" for Sierra Chart timers. This may take a little longer.

If this does not resolve the issue, we are out of ideas. Other than having to have an option for Windows timers for charts.

Timer management is so efficient now, including minimizing the amount of messages in the message queue, that it has to be better than Windows.

The only other thing that we can think of is that when Windows generates a timer message : WM_TIMER (the very same message code that we are using) it may be controlling the priority of the message. When you are interacting with Sierra Chart, through mouse/pointer events, and keyboard events this may cause, the timer messages to have a lower priority and the user interface input to have a higher priority. This is not something Sierra Chart is able to control. Whether this is true or not we do not know. But if it is true, it is not good because then excessive user input to Sierra Chart, can slow chart updates.

-----
Update:

When we explain about using too low of a Chart Update Interval, we are referring to using intervals, in particular under 50 ms and using this for a lot of charts. Using for example 10 or 20 ms and using this on a lot of charts. We are not implying, that you need to be increasing the global chart update interval to 1000 ms or 2000 ms or 5000 ms. It is using 10 ms on a large number of charts. The thing is we are using ourselves a global 10 ms update interval and not observing any issue.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2024-12-04 04:59:45
[2024-12-04 07:33:27]
Sierra_Chart Engineering - Posts: 18297
Documentation for new settings in 2716:
General Settings Window: Timer Management - Chart Calculation/Draw Time Multiplier for Interval Delay (Global Settings >> General Settings >> General >> Update Intervals)

General Settings Window: Timer Management - Maximum Interval Delay in Milliseconds (Global Settings >> General Settings >> General >> Update Intervals)

2716 also instantly updates chart orders on the chart, any time there is any interaction with the orders or change with the orders. It is ahead of the standard Chart Update Interval.

A strategy we think to use with 2716 is to set the global Chart Update Interval somewhere between 500 ms to a 1000. And for charts where you want to fast updating use a setting of 50 to 100 ms and see how that works. These are just the minimums and Sierra Chart will increase them as necessary.

Maybe that will cause a problem for unknown reasons, but we see no issue.

We are using a 10 ms global Chart Update Interval and notice no issues. Sierra Chart it is completely responsive. This version ensures, there are no excessive amount of messages going into the thread message queue for timers.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2024-12-04 07:45:03
[2024-12-04 16:28:20]
Sierra_Chart Engineering - Posts: 18297
We believe the problem that some users are having, relates to the Calculation and Draw time of the Chart or Trading DOM, the number of charts, the chart update intervals used, all which results in processing over a short period of time that exceeds the available processing time of a CPU core.

Now this is a very obvious conclusion and is certainly known to us. This is not hard to figure out. It is all very basic. The problem is why is there a problem with Sierra Chart timers versus operating system timers and the answer must be that Windows has some algorithm, for dropping timer events.

Which means operating system timers are actually unreliable. Which is a good reason they are not used in our server environment any longer. Since we need a very reliable timer events.

Sierra Chart uses a very basic algorithm, where for a given chart, a timer event will not be generated, if there is one already in the thread message queue and will not be generated again, until the chart update is fully complete. So it is not just simply triggering events, for example every 10 ms for a chart. A chart has to receive it out of the queue, and then actually process it until another one is allowed.

So we will need to create an algorithm to manage this better. It would mean that we would need to add a setting where you would tag a chart as High, Medium or Low priority. Higher priority charts, will have higher priority with updating.

For now users have the ability to manage all of this by looking at the calculation and draw time in Chart >> Chart Settings >> Performance for each chart and adjusting the Chart Update Interval for that chart appropriately and also based upon the amount of priority you want to give that chart.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2024-12-04 16:55:43
[2024-12-05 15:20:29]
Sierra_Chart Engineering - Posts: 18297
We have released version 2717, that uses Windows-based timers. This is so that users who are affected by the new timer functionality in Sierra Chart will not have any further issues.


Update instructions:
Software Download: Fast Update

When we said that Windows timers are unreliable, it is not that they really are unreliable and not ultimately triggering. It is a case, where the operating system is suppressing timer events, and not actually sending them at the requested frequency, based on some algorithm.

In part this algorithm has to do with user input but that is already known and by using the same message code we should effectively have the same result. And it also is just suppressing them to ensure a responsive user interface, to some extent.

There is a negative consequence to this though and that is charts will not update as fast, with Windows-based timers.

Anyway, we are going to work on a much more advanced algorithm for chart updating. But this will take a few days.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2024-12-05 15:22:14

To post a message in this thread, you need to log in with your Sierra Chart account:

Login

Login Page - Create Account