Applies To: |
|
Summary: |
Question: After I upgraded my system from Citect for Windows version 2.01 to version 3.0, I noticed the CPU loading in the kernel has increased. What is the cause of the increase in CPU loading? |
Solution: |
The cicode thread schedular has been
enhanced to be a more efficient user of your CPU resource. It has
been make more efficient in that it will give up the CPU very
quickly when Citect has a more important task to run. As it is now
more efficient we have also given the schedular more access to the
CPU resource. In version 2.xx and earlier the cicode thread
schedular was designed to limit its use of the CPU to no more than
50% of the available resources in any given second. In some cases
it would use more that this 50% in one second. Because of the
improvements to the schedular in version 3.0, it is now not limited
to the 50% of CPU. So that is Citect is not doing anything else
more important at the time the cicode schedule will use up to 100%
of the CPU resource in any given second.
This will mean that the cicode thread schedular (and so your cicode tasks) will mop up any available CPU resources without slowing down important Citect tasks. This gives a very fast responsive feel to critical Citect tasks while at the same time giving more CPU to your cicode tasks. In version 2.xx and earlier the cicode thread schedular would sometimes not give up the CPU resource quick enough and users where required to put Sleep() function calls in their code to reduce the total CPU loading. This was a typical requirement in tight loops which called a lot of slow functions, for example DevXXX functions. This is no longer required for version 3.0, however it is still good way to share the CPU from one cicode task to another. So to sum up you may see an effect of this enhancement as a higher CPU loading (using the Citect Kernel), however your system will be more responsive to the operator. See also Q1458. |
Keywords: |
Related Links
Attachments