With MainType 9.0.0.1176, CPU spikes occur every 2-3 minutes, even when the MainType application window is closed. This version seems to be spiking less dramatically (in terms of % CPU) but still hovers in the 15% - 20% range on average.
I’m glad to know this update works way better for you.
The font service checks if fonts have been installed or uninstalled. It does this every couple of minutes in the background, so this is most likely expected behavior.
Alternatively you have synced font folders with a short synchronization interval.
The CPU spikes are still significant on a system that is also used for realtime production tasks. I don’t like having ≈20%+ CPU being used so often to check for font changes when I very rarely change my font installation. I’m not installing fonts every few minutes, thus there is no need for MainType to check over and over again. I realize that some users may do this (particularly graphic designers with varying font packages used multiple times a day), but it’s not my use case. I’m using MainType to organize a stable, consistent group of installed fonts. To arbitrarily grind the system often for no reason is an onerous load that makes me inclined to uninstall MainType, since my top priority is a stable, low-background-load system. I want a font tool to use resources when it’s running, and to use little to no resources when it’s not running. For this tool to be using anywhere from 20% to 50% of resources in the background every few minutes isn’t the situation I seek.
A few suggestions:
Could MainType perhaps use a watch-folder type algorithm, so that instead of scanning through files for changes per se, it simply waits to detect any changes in specified font install locations? I have other apps that operate in this manner which use almost no resources unless/until something in a watch folder actually changes; then they spring into action.
If not, could you provide an option where the user might reduce the intervals, especially when MainType itself is not in use? You could make this an option the user could set. I wouldn’t mind if MainType ran checks for changed fonts once per day or so, for example.
And even if the interval is reduced, could the checks to be even more efficient on CPU usage?
Again, I am highly appreciative of your excellent software. Thanks for your consideration.
To further look into this, I ask you to force a crash within the font service, which will generate a stack trace of the current state of the software. That might reveal what takes so much cpu usage.
To let the font service crash, do add a new group with this specific name:
****** [we will provide this secret group name on request only]
It is your challenge to submit the group at the right time
After you’ve done it, the group won’t be added, and the font service needs to be restarted (through FmsConfig).
You will find the error report in this folder:
C:\ProgramData\High-Logic\Errors
Erwin, thanks for providing this method of generating error reports.
I sent you the .dat file via PM.
I note that, while adding the ********* group did successfully generate the Error .dat file, the High-Logic Font Management Service is still running after doing so.
We could further look into this, but then we should consider a remote desktop session. For example with Chrome Remote Desktop if you don’t mind me taking a look at your computer.