I wrote a small GUI program that reproduces a performance issue with Root. The issue is that Root continuously does a FASTIO_READ operation on the font file arialbd.ttf when updating a histogram.
Attached is the program to keep filling the histogram with random data and display the histogram on the TCanvas continuously. The TCanvas is updated every 1000 ticks. I also put a TText object as the title of the histogram on the TCanvas. The TText object is only updated once at the beginning. I use Procmon (Process Monitor) to monitor the operations that ROOT does each time when the TCanvas is updated. It turns out that ROOT only does one operation: keeps doing FASTIO_READ on an arialbd.ttf file (…\root\fonts\arialbd.ttf) when the TCanvas is updated.
Even when I remove the TText object from the TCanvas, ROOT still do FASTIO_READ. I also trace the stack for the operation of FASTIO_READ and put it in the attachment (StackFASTIO_READ.xls).
My question is why the arialbd.ttf is always being called when update the histogram?
Is there a way to cache the font files to prevent this extra disk i/o? Or use some other font?
My OS is Win7 (both 32 and64 bit). The ROOT version I use is 5.28.00.b (both debug and non-debug)
Thank you very much for your advice.
StackFASTIO_READ.xls (37 KB)
samplegui.C (23.2 KB)