Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
Qt Creator 2.2.0
-
None
-
2GHz Macbook, Intel Core Duo, 2GB. OS X 10.5.8
Description
Qt Creator becomes randomly unresponsive when it decides to update something related to the filesystem. By sampling the process with OS X tools (see attachment), it was easy to see that the culprit is folderChanged() call, which in turn calls recursiveEnumerate() in a loop. These calls are made a lot when the update is being run, and from the timings file, you can see that the calls take even 70ms, and that there are multiple, consequent calls that take such a long time. Qt Creator eats around 100% of the CPU while these calls are being made, making it unresponsive, so OS X "spinning beachball of death" appears for a few seconds.
The timings.txt file was produced by starting Qt Creator from shell and applying a three-line patch that measures how long the recursiveEnumerate() calls take, at
void Qt4PriFileNode::folderChanged(const QString &)