From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4b) Gecko/20030516 Mozilla Firebird/0.6 Description of problem: When loading big directories with nautilus, FAM is using a lot of CPU time. I profiled it and found that the time is spent pretty much exclusively in DNotify::watch_dir(), specifically in the loop that walks the list of file watches to see if the file is already watched. I'm attaching a patch that just looks in the existing hash table and checks if the filewatch->dir_watch is equal to the current dir_watch. I am not actually sure that last check is necessary, though. The closest thing to real numbers I have is the time it takes nautilus to load /dev. It was around 23 seconds before and is around 18 seconds now. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1. n/a 2. 3. Additional info:
Created attachment 92997 [details] the patch
Fixed in 2.6.8-11. I also changed the hashtable sizes to be slightly larger and have prime sizes.