Now that 7.4 is released, I would like to resurrect this topic of excessive CPU consumption for sub-minute interval charting (not tick charts, which I avoid). I know this is a complex issue, but let me outline why it's a problem for me, what I'm trying to do about it, and where I feel the problem lies in the winros/winsig interaction. Also, it's not restricted to 7.4, but I've had this issue in previous releases as well.
I trade only 1 single active stock -- Intel (INTC). I run charts which are down to the level of 2s (two seconds intervals), but I never attempt to run T (tick) resolution charts. I know that these are "tick derivative" interval calculations, and perhaps therein lies the clue that winsig is not handling this as efficiently as it could. I know 2 seconds sounds extreme, but that's not really the issue, I'm pretty sure...
In my own custom EFS formulae, I use every trick in the book to lower cpu usage, and I am a very good performance programmer. I always use setComputeOnClose() hoping to avoid intra-interval callbacks, when not necessary. The problem is not in the EFS formulas, I'm sure. It is in the way the winsig.exe *client* process handles sub-minute "tick derivative" interval data.
From the behavior, either winsig.exe is "polling" excessively (pulling data), or it is getting "jammed up" with callbacks initiated by the winros communication mechanism. This appears to become "pathological" at a certain frequency, and the system backs up, unable to respond to the desired throughput.
The winros/winsig interaction involves interprocess communication, obviously, and I think this may be part of the problem. I set my XP Pro system to schedule short quanta for each process, to encourage fast and frequent context switching. Even in periods of very low trade volume (a few trades per second), winsig.exe can remain at 100% cpu consumption, and there simply is no good reason for this. Having written lots of software myself, I'm not bitching, but just trying to point the way toward a solution to this CPU issue, which several users have remarked upon. All software has loading issues, especially when not specifically designed to handle maximum loads gracefully.
Anyway, although I can use eSignal for wonderful analysis, I cannot rely upon it for the latest price information, especially during active volume periods, due to winsig.exe process CPU saturation. (2.5ghz processor, 1.5gb ram) Often, very significant delays (maybe even up to 30 seconds) appear, when this interprocess communication and the callbacks from winros to winsig run into a "log jam". Sometimes, winsig never catches up, and the process has to be killed. I use RealTick as an Order Entry platform, and am forced to rely on its graphics for the latest information, since it never falls behind the tape. The problem is that RealTick's charting is not even in the same league as eSignal's.
If this problem can be overcome, then I would consider some semi-automatic trading driven by eSignal. As it is now, I simply can't rely on it to "keep up" with an active stock, and I am convinced that there is a solution to this problem, but it would involve examining winsig.exe's response to incoming data, and nailing down where unnecessary cpu loops occur. I'd be very happy to beta test a proposed solution to this problem, which would make eSignal a even better product, incredible as it is already !
I trade only 1 single active stock -- Intel (INTC). I run charts which are down to the level of 2s (two seconds intervals), but I never attempt to run T (tick) resolution charts. I know that these are "tick derivative" interval calculations, and perhaps therein lies the clue that winsig is not handling this as efficiently as it could. I know 2 seconds sounds extreme, but that's not really the issue, I'm pretty sure...
In my own custom EFS formulae, I use every trick in the book to lower cpu usage, and I am a very good performance programmer. I always use setComputeOnClose() hoping to avoid intra-interval callbacks, when not necessary. The problem is not in the EFS formulas, I'm sure. It is in the way the winsig.exe *client* process handles sub-minute "tick derivative" interval data.
From the behavior, either winsig.exe is "polling" excessively (pulling data), or it is getting "jammed up" with callbacks initiated by the winros communication mechanism. This appears to become "pathological" at a certain frequency, and the system backs up, unable to respond to the desired throughput.
The winros/winsig interaction involves interprocess communication, obviously, and I think this may be part of the problem. I set my XP Pro system to schedule short quanta for each process, to encourage fast and frequent context switching. Even in periods of very low trade volume (a few trades per second), winsig.exe can remain at 100% cpu consumption, and there simply is no good reason for this. Having written lots of software myself, I'm not bitching, but just trying to point the way toward a solution to this CPU issue, which several users have remarked upon. All software has loading issues, especially when not specifically designed to handle maximum loads gracefully.
Anyway, although I can use eSignal for wonderful analysis, I cannot rely upon it for the latest price information, especially during active volume periods, due to winsig.exe process CPU saturation. (2.5ghz processor, 1.5gb ram) Often, very significant delays (maybe even up to 30 seconds) appear, when this interprocess communication and the callbacks from winros to winsig run into a "log jam". Sometimes, winsig never catches up, and the process has to be killed. I use RealTick as an Order Entry platform, and am forced to rely on its graphics for the latest information, since it never falls behind the tape. The problem is that RealTick's charting is not even in the same league as eSignal's.
If this problem can be overcome, then I would consider some semi-automatic trading driven by eSignal. As it is now, I simply can't rely on it to "keep up" with an active stock, and I am convinced that there is a solution to this problem, but it would involve examining winsig.exe's response to incoming data, and nailing down where unnecessary cpu loops occur. I'd be very happy to beta test a proposed solution to this problem, which would make eSignal a even better product, incredible as it is already !
Comment