View Issue Details

IDProjectCategoryView StatusLast Update
00030893 - Current Dev ListBugpublic2019-02-02 23:12
ReporterK7ZCZ 
Assigned ToK7ZCZ 
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version 
Target VersionFixed in Version6.5.0.188 
Summary0003089: "Monitor" pane in Logbook uses lots of CPU
DescriptionThe "Monitor" is intended to show diagnostic information from the application. It has largely the same intent as the "Logfile" tab, some differences in its implementation:


  • It uses a Rich Edit control rather than a List Control. The rich edit control is substantially more expensive for CPU usage and memory consumption

  • It shows all trace information; it is not filtered like the Logfile tab.



The use of a rich edit control for logging is not a good design. The control limits itself to displaying about 16K of data. When a new string is added to the control, the length of the data in the control is checked. If it is more than 16K, data is removed from the beginning of the control, one line at a time, until the length is less than 16K. Then, the new data is added.

While the control isn't used by most users, the code to drive it is always active. Any message logged by the application -- debug trace, regular trace, timing trace -- is always added to the control and the control's content pruned each time, even when the window isn't visible. The management of the control can take a tremendous amount of CPU and memory. When the control is visible, it updates and repaints constantly. For each string added to it, it will redraw for the added string, but also redraw once for each string remove in order to replace the added string.

Because the window has a drastic negative effect on the product and is a subset of the functionality offered by the Logfile tab, we should remove it.


Steps To Reproduce1) Start up the Logbook.
2) Be sure that you are not connected to a DX Cluster
3) Fire up Task Manager. Monitor the Logbook's CPU usage.
4) Use the "Monitor" command in the "View" menu to show the "Monitor" pane
5) Connect to a DX cluster.

BUG#1) Performance of the Logbook is terrible. The DX Cluster window takes a very long time to fill or repaint, and the Monitor tab is very busy redrawing itself.

6) Find HRDLogbook.EXE in the details view of the Task Manager.

BUG#2) The process will be using 100% of a CPU core due to the management of the Monitor tab. It'll be using more CPU than that, of course, for other work ... but pegging a CPU for this window just isn't worth the cost.
TagsNo tags attached.
ModuleLogbook
Sub-ModuleDX Cluster
Testing Beta Successful

Relationships

related to 0002833 closedWA9PIE Ham Radio Deluxe DX cluster is sluggish when changing between filters after program runs for a considerable amount of time 

Activities

K7ZCZ

2019-01-24 05:00

manager   ~0007066

fixed with this checkin:
https://hrdsoftware.visualstudio.com/HRD/_versionControl/changeset/4753

g3ucq

2019-02-01 03:16

updater   ~0007192

CPU at 0%-0.1% with and without Cluster connection.
Fixed.

Issue History

Date Modified Username Field Change
2019-01-23 12:47 K7ZCZ New Issue
2019-01-23 12:54 K7ZCZ Relationship added related to 0002833
2019-01-24 05:00 K7ZCZ Assigned To => K7ZCZ
2019-01-24 05:00 K7ZCZ Status new => resolved
2019-01-24 05:00 K7ZCZ Resolution open => fixed
2019-01-24 05:00 K7ZCZ Note Added: 0007066
2019-01-29 22:47 K7ZCZ Fixed in Version => 6.5.0.188
2019-02-01 03:16 g3ucq Note Added: 0007192
2019-02-02 23:12 WA9PIE Status resolved => closed
2019-02-02 23:12 WA9PIE Description Updated View Revisions
2019-02-02 23:12 WA9PIE Testing Not Started => Beta Successful