Lynn Allan wrote:
I don't think I tried to cancel during the IndexBuild, but it was hard to tell. The indexing almost locked the computer up ... running Win-2000 sp4. 1.5.8 was complete unresponsive, but so were other open applications ... IE6, Outlook Express, Explorer, the windows Launch bar. etc.. for the entire 25 minutes.
The indexer will use as many resources as it can within a single thread. On my system it never excedes 60% CPU, probably because it is limited by disk access speeds (though it doesn't actually seem to be using the disk as constantly as it could because the disk access indicator is not solid but blinking). All other threads (IE, Explorer, other apps) will run in remaining resources, so for me everything outside of Sword was fully responsive. This has nothing to do with us and we should probably not make any effort to address this (aside from considering distributing pre-built indexes or bringing the indexing time down to something nearer what Joachim reported for Linux). If we include some kind of indexing in the release frontend, we might want to spawn it as a separate thread running at low priority. Nevertheless, the tremendous amount of disk access is going to drain resources still.
Just about the only thing still responding during the duration of the index building was the Task Manager (which runs at High Priority). It was almost like the index building was running at high or real-time priority and "starving" other user apps. I suspect an end-user would be worried that their computer had crashed and press the "Reset" button.
This is probably because you have a faster disk than me, so you're not limited by that factor, rather by CPU speed. It will use all resources available.
Perhaps even odder, this perceived lockup was on a dual processor computer. Watching the CPU usage graph, it is clear that IndexBuiding is not multi-tasking and keeping both CPU's busy. It's not like there were no CPU cycles to spare, even if "Index Building" was running at RealTime priority. On a dual processor or HyperThreading computer, IndexBuilding shouldn't starve other processes such that the computer seems stalled out ...
Indexing is single-threaded, correct. It will only run on one CPU (logical or real). If the system is unresponsive on a dual CPU system, it may be due to limitation of other factors, like disk thrashing. It's hard to say.
--Chris
_______________________________________________ sword-devel mailing list sword-devel@crosswire.org http://www.crosswire.org/mailman/listinfo/sword-devel