Back to Buglist

5- Excessive CPU Usage Testing by Larry and Bill

CPU Testing

This test involves running QCharts 6.0.3.1459 and eSignal 10.3.1491.1162 concurrently, on the same computer using the same Data Manager with equal (identical) workspaces to compare the difference in CPU usage between the two applications.

These are the test workspaces:
eSignal
1 - 20090219 ESIG VS 6.0.XXXX quotesheets 60 syms and 9 charts..PG
2 - 20090219 eSig vs 6.0.xxxx quotesheets only 60 syms..PG
3 - 20090219 ESIG VS 6.0.XXXX 9 charts only..PG

QCharts
1 - 20090219 eSig vs 6.0.xxxx quotesheets 60 syms and 9 charts.qcw
2 - 20090219 eSig vs 6.0.xxxx quotesheets only 60 syms.qcw
3 - 20090219 eSig vs 6.0.xxxx 9 charts only.qcw

Click here to access these files.

Testing:
We used TaskInfo to measure the CPU times and percentages for this exercise.
The first column (Time) is the one used to record the cpu usage per task/process.
It was configured like this:

Column explanation:
Time - refers to the amount of CPU time an application uses. Displayed in minutes and seconds.
Start time - refers to the date and time that an application starts running.
Process - is the name of the process (that the application runs)
LT %CPU - is the Long Term Percent CPU - the average of the percentage of CPU usage.
CPU Graph - is the graphical representation of CPU usage.

The logic behind the test setup:
- We would run the test using QCharts 6.0.3.1459 and eSignal 10.3.1491.1162
- We would launch one instance of the data manager, using the QC account that was enabled for both QCharts and eSignal access. That way both applications were pulling from the same instance of the Data Manager and thus, the same data servers.
- We would run an identical workspace on each application. Those workspaces are here.
- We would use TaskInfo v8.2.0.280 to monitor CPU usage and CPU time (see above screen capture).
- Both QCharts and eSignal were confined to one monitor, not spread across multiple monitors. The GUI footprint was the same.

Methodology:
-Start QCharts and QCharts Data Manager to Blank workspace.
-Start eSignal to Blank workspace, which uses the same Data Manager that's already running.
[Note: As of this test the installed Data Manager in QCharts and eSignal are the exact same Data Manager.]
-Load the equivalent workspaces into both applications, each workspace on a separate monitor. Each workspace is designed to fit on a single monitor.
-Note the CPU Time from system monitor utility of both QCharts.exe and WinSig.exe and also the wall clock time.
-Let the workspaces run. At least 10 minutes is recommended. The results will vary depending on the day and time the tests are run. The tick rates (data flowing in to be processed) vary day to day and minute to minute, depending on overall market and specific symbol activity at any point in time.
-Note the CPU Time of both QCharts.exe and WinSig.exe and the wall clock time whenever one wishes (at least 10 min elapsed time).
-Stop both applications if desired, but not necessary for calculations.
-Perform %CPU calculations from the numbers in TaskInfo.

Test #1:
QCharts consumed more CPU than eSignal by a factor of 4.90, or 390% more CPU.
- We used the following two workspaces for this test:
20090219 eSig vs 6.0.xxxx quotesheets only 60 syms.qcw (QCharts)
20090219 eSig vs 6.0.xxxx quotesheets only 60 syms.PG   (eSignal)

These were just workspace with 2 quotesheets in each, each quotesheet formatted with the exact same font size and colors and the same tickers.

Test Run time:
Start Friday, 2/20/2009 at 14:39 EST
End  Friday, 2/20/2009 at 14:51 EST
Test run time = 12 minutes
 
QCharts...
CPU Time Start 0:01
CPU Time End  3:22
CPU Time Total = 201 secs
 
eSignal...
CPU Time Start 0:01
CPU Time End  0:42
CPU Time Total = 41 secs
 
201/41 = factor of 4.90, or 390% more CPU required for QCharts than eSignal.

 

Test #2:
QCharts consumed more CPU than eSignal by a factor of 3.70, or 270% more CPU.
- We used the following two workspaces for this test:
20090219 eSig vs 6.0.xxxx 9 charts only.qcw (QCharts)
20090219 eSig vs 6.0.xxxx 9 charts only.PG   (eSignal)

These were just workspace with 9 identical charts in each, and the same tickers and each chart set to the same colors and studies.

Test Run time:
Start Friday, 2/20/2009 at 15:01 EST
End  Friday, 2/20/2009 at 15:18 EST
Test run time = 17 minutes
 
QCharts...
CPU Time Start 0:01
CPU Time End  1:26
CPU Time Total = 85 secs
 
eSignal...
CPU Time Start 0:01
CPU Time End  0:24
CPU Time Total = 23 secs
 
85/23 = factor of 3.70, or 270% more CPU required for QCharts than eSignal.

 

Test #3:
QCharts consumed more CPU than eSignal by a factor of 4.43, or 343% more CPU.
- We used the following two workspaces for this test:
20090219 eSig vs 6.0.xxxx quotesheets 60 syms and 9 charts.qcw (QCharts)
20090219 eSig vs 6.0.xxxx quotesheets 60 syms and 9 charts.PG   (eSignal)

These were just workspace with 2 quotesheets in each and 9 identical charts in each, each quotesheet formatted with the exact same font size and colors and the same tickers and the same tickers and each chart set to the same colors and studies.

Test Run time:
Start Friday, 2/20/2009 at 15:23 EST
End  Friday, 2/20/2009 at 15:33 EST
Test run time = 10 minutes
 
QCharts...
CPU Time Start 0:01
CPU Time End  2:05
CPU Time Total = 124 secs
 
eSignal...
CPU Time Start 0:01
CPU Time End  0:29
CPU Time Total = 28 secs
 
124/28 = factor of 4.43, or 343% more CPU required for QCharts than eSignal.
 
Results summary:
Test #1 - Quotesheets only
QCharts consumed more CPU than eSignal by a factor of 4.90, or 390% more CPU. 
 
Test #2 - Charts only
QCharts consumed more CPU than eSignal by a factor of 3.70, or 270% more CPU.
 
Test #3 - Quotesheets and Charts
QCharts consumed more CPU than eSignal by a factor of 4.43, or 343% more CPU.
 
In each test, QCharts took significantly more CPU time and more %CPU usage than eSignal. The question is why, when running identical workspaces concurrently and connected to the same data servers, does QCharts take so much more processor power than eSignal?