Heavy, frequent CPU use on Leopard+G4 with Hazel

Get help. Get answers. Let others lend you a hand.

Moderator: Mr_Noodle

My battery life on my PowerBook G4 is noticeably shorter when Hazel is engaged. Every few minutes, even when nothing has changed in monitored folders, my CPU is maxed out to 100%, fans kick on, power draw increases.

Looking at output from Top or Activity Monitor, sorted by CPU, Hazelfolderwatch & mds are always at the top of the list. mds only appears as a heavy consumer when hazelfolderwatch is also consuming CPU too.

When Hazel is turned off, then the problem never occurs & my battery life is considerably longer.
rekrabm
 
Posts: 4
Joined: Fri Jun 29, 2007 3:49 pm
Location: San Francisco Bay area, California

Wed Dec 19, 2007 1:36 pm • by Mr_Noodle
One thing to try in Activity Monitor is to select the hazelfolderwatch process and do "View->Sample Process". Feel free to post or email me what you get from that.

mds is the metadata server which is used by Spotlight. Hazel uses it as a client (meaning it fetches metadata from it). If mds is clogged up, it clogs up Hazel as well. The only way I can see Hazel causing mds to get busy is if you have Hazel changing a lot of files, as a result of the rules you are running. Otherwise, for its periodic checks, it should not be causing mds to do anything.

Another thing to check is when Hazel is off, keep tabs on the mds process and see how busy it gets on its own.
Mr_Noodle
Site Admin
 
Posts: 11255
Joined: Sun Sep 03, 2006 1:30 am
Location: New York City

Details Wed Dec 19, 2007 1:43 pm • by rekrabm
Thanks for your reply.

With Hazel off, I never see mds consuming any significant CPU.
Hazel is monitoring 4 folders (the Kinkless rule set).
I'll turn it on and grab a sample + any console messages.
Will DTrace (Instruments) samples be of any help? If so, let me know what you'd like me to monitor and I'll capture that as well.
Cheers,
Matthew
rekrabm
 
Posts: 4
Joined: Fri Jun 29, 2007 3:49 pm
Location: San Francisco Bay area, California

G5 Sample...same behaviour Wed Dec 19, 2007 6:59 pm • by rekrabm
Mr_Noodle wrote:One thing to try in Activity Monitor is to select the hazelfolderwatch process and do "View->Sample Process". Feel free to post or email me what you get from that.


Below is the sample taken from my G5 PowerMac while displaying the same behaviour. I'll follow up with the G4 sample a little later.
Cheers,
Matthew

[code]Sampling process 29095 for 3 seconds with 1 millisecond of run time between samples
Sampling completed, processing symbols...
Analysis of sampling hazelfolderwatch (pid 29095) every 1 millisecond
Call graph:
1423 Thread_2503
1423 0xffc
1423 start
1423 start
1423 start
1423 start
1423 start
1423 start
1423 start
1423 start
1423 start
1423 start
1423 start
1406 start
1402 start
1140 start
1125 start
1092 start
1070 start
964 -[NSCompoundPredicate evaluateWithObject:substitutionVariables:]
958 -[NSCompoundPredicateOperator evaluatePredicates:withObject:substitutionVariables:]
955 -[NSComparisonPredicate evaluateWithObject:substitutionVariables:]
927 start
927 start
684 __newAttr
658 mdsFetchAttributesForItems
651 mach_msg
651 mach_msg_trap
651 mach_msg_trap
7 mdsFetchAttributesForItems
9 _CFRelease
7 __MDPlistBytesFinalize
7 munmap$UNIX2003
7 munmap$UNIX2003
2 __MDStoreOIDArrayFinalize
2 munmap$UNIX2003
2 munmap$UNIX2003
5 MDPlistBytesAppendPlist
3 MDPlistBytesBeginPlist
3 MDPlistBytesBeginPlist
2 _MDPlistBytesAddObject
2 _MDPlistBytesAddObject
2 MDPlistBytesAddString
1 __CFStringEncodeByteStream
1 __memcpy
1 __memcpy
1 addStringBytes
1 addStringBytes
2 MDPlistBytesCopyPlistAtIndexWithCallbacks
2 copyObject
2 CFStringCreateWithBytes
2 __CFStringCreateImmutableFunnel3
1 __CFStringCreateImmutableFunnel3
1 memcpy
1 memcpy
2 MDPlistBytesCreateMutable
2 mmap
2 mmap
2 MDStoreOIDArrayBeginSequence
2 MDStoreOIDArrayBeginSequence
2 _MDAccessGetMachPort
2 _MDAccessGetClientPort
1 CFNumberCreate
1 CFNumberCreate
1 pthread_mutex_lock
1 pthread_mutex_lock
2 __newAttr
1 MDStoreOIDArrayCreateMutable
1 mmap
1 mmap
1 _MDItemValidateOperation
1 _MDItemValidateOperationForUTI
1 _MDAttributeValidateOperation
1 _MDValidateAttributeName
1 CFCharacterSetIsCharacterMember
1 CFCharacterSetIsCharacterMember
243 start
243 MDItemCreate
231 mdsFetchItemsForPaths
230 mach_msg
230 mach_msg_trap
230 mach_msg_trap
1 mig_get_reply_port
1 mig_get_reply_port
3 accurate_realpath
2 open$UNIX2003
2 open$UNIX2003
1 close$UNIX2003
1 close$UNIX2003
2 CFStringGetCString
1 -[NSString(NSCFAdditions) _getCString:maxLength:encoding:]
1 -[NSString(NSStringOtherEncodings) getBytes:maxLength:usedLength:encoding:options:range:remainingRange:]
1 CFStringIsEncodingAvailable
1 CFStringIsEncodingAvailable
1 objc_msgSend
1 objc_msgSend
2 _CFRelease
1 __MDStoreOIDArrayFinalize
1 munmap$UNIX2003
1 munmap$UNIX2003
1 szone_free
1 szone_free
2 _MDAccessGetMachPort
2 _MDAccessGetClientPort
1 CFDictionaryGetValue
1 __CFDictionaryFindBuckets1b
1 __CFNumberEqual
1 __CFNumberEqual
1 CFNumberCreate
1 CFNumberCreate
1 CFMachPortGetPort
1 CFMachPortGetPort
1 MDPlistBytesAppendPlist
1 MDPlistBytesBeginPlist
1 MDPlistBytesBeginPlist
1 MDPlistBytesCreateMutable
1 MDPlistBytesCreateMutable
17 -[NSLikePredicateOperator performPrimitiveOperationUsingObject:andObject:]
16 +[_NSPredicateOperatorUtilities doRegexForString:pattern:patternLength:flags:]
5 stripDiacriticsFromString
4 CFStringTransform
3 utrans_trans
2 icu::Transliterator::transliterate(icu::Replaceable&, int, int) const
2 icu::Transliterator::filteredTransliterate(icu::Replaceable&, UTransPosition&, signed char, signed char) const
2 icu::CompoundTransliterator::handleTransliterate(icu::Replaceable&, UTransPosition&, signed char) const
2 icu::Transliterator::filteredTransliterate(icu::Replaceable&, UTransPosition&, signed char, signed char) const
2 icu::NormalizationTransliterator::handleTransliterate(icu::Replaceable&, UTransPosition&, signed char) const
2 unorm_next
2 unorm_internalNormalize
2 icu::UnicodeSet::isEmpty() const
2 icu::UnicodeSet::isEmpty() const
1 utrans_trans
1 CFDictionaryGetValue
1 __CFStringHash
1 __CFStringHash
1 dyld_stub_CFRelease
1 dyld_stub_CFRelease
5 uregex_open
5 icu::RegexPattern::compile(icu::UnicodeString const&, unsigned int, UErrorCode&)
5 icu::RegexPattern::compile(icu::UnicodeString const&, unsigned int, UParseError&, UErrorCode&)
3 icu::UnicodeSet::remove(int, int)
2 icu::UVector32::~UVector32()
1 icu::UVector32::UVector32(int, UErrorCode&)
1 malloc
1 malloc_zone_malloc
1 szone_malloc
1 tiny_malloc_from_free_list
1 tiny_malloc_from_free_list
1 icu::UVector32::~UVector32()
1 icu::UnicodeSet::remove(int, int)
1 icu::UnicodeSet::remove(int, int)
1 icu::UnicodeString::moveIndex32(int, int) const
1 icu::UnicodeString::moveIndex32(int, int) const
1 icu::RegexPattern::RegexPattern()
1 icu::RegexPattern::init()
1 malloc
1 malloc_zone_malloc
1 szone_malloc
1 tiny_malloc_from_free_list
1 tiny_malloc_from_free_list
1 icu::UVector32::UVector32(UErrorCode&)
1 icu::UVector32::UVector32(UErrorCode&)
2 CFStringGetCharacters
2 CFStringGetCharacters
1 __memcpy
1 __memcpy
1 _setjmp
1 _setjmp
1 doCaseFoldingForString
1 u_strFoldCase
1 u_strcasecmp
1 uhash_hashCaselessUnicodeString
1 ucase_toFullFolding
1 ucase_toFullFolding
1 icu::RegexMatcher::reset(icu::UnicodeString const&)
1 icu::RegexMatcher::reset()
1 icu::RegexMatcher::reset()
1 +[_NSPredicateOperatorUtilities copyRegexFindSafePattern:toBuffer:]
1 CFStringGetCharacters
1 CFStringGetCharacters
10 -[NSFunctionExpression expressionValueWithObject:context:]
5 -[NSObject(NSKeyValueCoding) valueForKey:]
2 start
2 +[NSObject allocWithZone:]
2 _internal_class_createInstanceFromZone
2 calloc
1 calloc
1 malloc_zone_calloc
1 szone_calloc
1 szone_calloc
1 -[NSString _newSubstringWithRange:zone:]
1 objc_msgSend_rtp
1 objc_msgSend_rtp
1 -[NSString substringWithRange:]
1 -[NSPlaceholderString initWithCharactersNoCopy:length:freeWhenDone:]
1 CFStringCreateWithCharactersNoCopy
1 __CFStringCreateImmutableFunnel3
1 _CFRuntimeCreateInstance
1 _CFRuntimeCreateInstance
1 _NSStartOfPathExtension
1 _NSStartOfPathExtension
4 objc_msgSend_rtp
4 objc_msgSend_rtp
1 -[NSFunctionExpression expressionValueWithObject:context:]
1 -[NSCustomPredicateOperator performPrimitiveOperationUsingObject:andObject:]
1 -[NSCustomPredicateOperator performPrimitiveOperationUsingObject:andObject:]
3 -[NSCompoundPredicate evaluateWithObject:substitutionVariables:]
3 -[NSCompoundPredicateOperator evaluatePredicates:withObject:substitutionVariables:]
3 -[NSComparisonPredicate evaluateWithObject:substitutionVariables:]
3 -[NSFunctionExpression expressionValueWithObject:context:]
3 -[NSObject(NSKeyValueCoding) valueForKey:]
2 CFDictionaryGetValue
2 CFEqual
2 CFEqual
1 CFSetGetValue
1 __CFSetFindBuckets1b
1 NSKeyValueAccessorIsEqual
1 NSKeyValueAccessorIsEqual
3 objc_msgSend_rtp
3 objc_msgSend_rtp
2 +[NSCompoundPredicateOperator andPredicateOperator]
2 +[NSCompoundPredicateOperator andPredicateOperator]
1 -[NSCompoundPredicate evaluateWithObject:substitutionVariables:]
94 start
44 start
33 start
22 +[NSFileAttributes _attributesAtPath:partialReturn:error:]
6 +[NSFileAttributes attributesWithStat:]
6 +[NSDictionary allocWithZone:]
4 +[NSObject allocWithZone:]
2 _internal_class_createInstanceFromZone
2 calloc
2 malloc_zone_calloc
1 malloc_zone_calloc
1 szone_calloc
1 tiny_malloc_from_free_list
1 tiny_malloc_from_free_list
1 __CFSetLastAllocationEventName
1 __CFSetLastAllocationEventName
1 _class_getInstanceSize
1 _class_getInstanceSize
2 objc_msgSendSuper
2 objc_msgSendSuper
5 FSPathMakeRefInternal(unsigned char const*, unsigned long, unsigned long, FSRef*, unsigned char*)
5 PathGetObjectInfo(char const*, unsigned long, unsigned long, VolumeInfo**, unsigned long*, unsigned long*, char*, unsigned long*, unsigned char*)
5 GetPathVolFSAttributes(char const*, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
4 getattrlist$UNIX2003
4 getattrlist$UNIX2003
1 UnpackAttributeBuffer(attrlist const*, void const*, FSAttributeInfo*, FSVolAttributeInfo*, unsigned char*, unsigned long*, unsigned long*, unsigned char, unsigned char, _acl**, unsigned char (*) [16], unsigned char (*) [16])
1 UnpackAttributeBuffer(attrlist const*, void const*, FSAttributeInfo*, FSVolAttributeInfo*, unsigned char*, unsigned long*, unsigned long*, unsigned char, unsigned char, _acl**, unsigned char (*) [16], unsigned char (*) [16])
5 lstat
5 lstat
4 LSCopyItemInfoForRef
3 _LSCopyInfoForNode
3 FSNodePrepareCatalogInfo
3 FSGetCatalogInfo
3 PBGetCatalogInfoSync
3 GetFSRefAttributes(FSMount*, FSRefPrivate const*, unsigned long, FSAttributeInfo*, unsigned long, char*)
3 FSMount::getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
3 VolFSMount::_getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
3 GetVolFSAttributes(VolumeInfo*, unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned long, FSVolAttributeInfo*, unsigned char*)
3 getattrlist_retry(unsigned int, unsigned long, char const*, unsigned long, attrlist*, void*, unsigned long, unsigned long)
3 getattrlist$UNIX2003
3 getattrlist$UNIX2003
1 FSNodeCreateWithFSRef
1 mach_absolute_time
1 mach_absolute_time
1 +[NSFileAttributes _attributesAtPath:partialReturn:error:]
1 -[NSFileManager getFileSystemRepresentation:maxLength:withPath:]
1 _CFStringGetFileSystemRepresentation
1 CFStringGetFileSystemRepresentation
1 CFStringGetCharactersPtr
1 CFStringGetCharactersPtr
8 start
4 -[NSFileManager fileSystemRepresentationWithPath:]
2 +[NSData(NSData) dataWithBytesNoCopy:length:]
2 +[NSData(NSData) allocWithZone:]
2 +[NSData(NSData) allocWithZone:]
1 -[NSFileManager getFileSystemRepresentation:maxLength:withPath:]
1 _CFStringGetFileSystemRepresentation
1 CFStringGetFileSystemRepresentation
1 CFUniCharDecompose
1 CFUniCharDecompose
1 CFStringConvertNSStringEncodingToEncoding
1 CFStringConvertNSStringEncodingToEncoding
4 FSPathMakeRefInternal(unsigned char const*, unsigned long, unsigned long, FSRef*, unsigned char*)
4 PathGetObjectInfo(char const*, unsigned long, unsigned long, VolumeInfo**, unsigned long*, unsigned long*, char*, unsigned long*, unsigned char*)
3 GetPathVolFSAttributes(char const*, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
3 getattrlist$UNIX2003
3 getattrlist$UNIX2003
1 GetRetainedVolFSVCBByVolumeID(unsigned long)
1 TSAcquireReader
1 TSAcquireReader
2 objc_msgSend_rtp
2 objc_msgSend_rtp
1 start
6 FSGetCatalogInfo
6 PBGetCatalogInfoSync
6 GetFSRefAttributes(FSMount*, FSRefPrivate const*, unsigned long, FSAttributeInfo*, unsigned long, char*)
6 FSMount::getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
6 VolFSMount::_getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
6 GetVolFSAttributes(VolumeInfo*, unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned long, FSVolAttributeInfo*, unsigned char*)
6 getattrlist_retry(unsigned int, unsigned long, char const*, unsigned long, attrlist*, void*, unsigned long, unsigned long)
6 getattrlist$UNIX2003
6 getattrlist$UNIX2003
5 -[NSNumber descriptionWithLocale:]
3 objc_msgSend_rtp
3 objc_msgSend_rtp
2 -[NSString initWithFormat:locale:]
2 -[NSPlaceholderString initWithFormat:locale:arguments:]
2 _CFStringCreateWithFormatAndArgumentsAux
1 CFStringCreateCopy
1 __CFStringCreateImmutableFunnel3
1 __CFStringCreateImmutableFunnel3
1 _CFStringAppendFormatAndArgumentsAux
1 snprintf_l$LDBL128
1 __vfprintf$LDBL128
1 __ultoa
1 __ultoa
17 +[NSFileAttributes _attributesAtPath:partialReturn:error:]
6 _attributesAtPath
3 listxattr
3 listxattr
1 +[NSMutableDictionary dictionaryWithCapacity:]
1 +[NSMutableDictionary dictionaryWithCapacity:]
1 malloc
1 malloc_zone_malloc
1 malloc_zone_malloc
1 objc_msgSend_rtp
1 objc_msgSend_rtp
3 FSGetCatalogInfo
3 PBGetCatalogInfoSync
3 GetFSRefAttributes(FSMount*, FSRefPrivate const*, unsigned long, FSAttributeInfo*, unsigned long, char*)
3 FSMount::getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
3 VolFSMount::_getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
3 GetVolFSAttributes(VolumeInfo*, unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned long, FSVolAttributeInfo*, unsigned char*)
3 getattrlist_retry(unsigned int, unsigned long, char const*, unsigned long, attrlist*, void*, unsigned long, unsigned long)
3 getattrlist$UNIX2003
3 getattrlist$UNIX2003
3 LSCopyItemInfoForRef
3 _LSCopyInfoForNode
2 FSNodePrepareCatalogInfo
2 FSGetCatalogInfo
2 PBGetCatalogInfoSync
2 GetFSRefAttributes(FSMount*, FSRefPrivate const*, unsigned long, FSAttributeInfo*, unsigned long, char*)
2 FSMount::getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
2 VolFSMount::_getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
2 GetVolFSAttributes(VolumeInfo*, unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned long, FSVolAttributeInfo*, unsigned char*)
1 CalcAttributeBufferSize(attrlist const*)
1 CalcAttributeBufferSize(attrlist const*)
1 getattrlist_retry(unsigned int, unsigned long, char const*, unsigned long, attrlist*, void*, unsigned long, unsigned long)
1 getattrlist$UNIX2003
1 getattrlist$UNIX2003
1 _LSCanSetExtensionHidden
1 _LSCanHideExtension(LSContext*, FSNode*, LSUniChars const*, LSUniChars const*)
1 _LSIsKnownExtensionUnicode
1 CSStringBindingFindStringAndBindings
1 CSStringBindingGetBindings
1 CSMapGetValue
1 _CSMapFindBucketForKey
1 _CSMapFindBucketForKey
2 FSPathMakeRefInternal(unsigned char const*, unsigned long, unsigned long, FSRef*, unsigned char*)
2 PathGetObjectInfo(char const*, unsigned long, unsigned long, VolumeInfo**, unsigned long*, unsigned long*, char*, unsigned long*, unsigned char*)
2 GetPathVolFSAttributes(char const*, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
1 SetAttrlistBitmap(unsigned long, unsigned long, unsigned long, attrlist*)
1 SetAttrlistBitmap(unsigned long, unsigned long, unsigned long, attrlist*)
1 getattrlist$UNIX2003
1 getattrlist$UNIX2003
2 lstat
2 lstat
1 +[NSFileAttributes attributesWithStat:]
1 +[NSDictionary allocWithZone:]
1 _NSFileExistsAtPath
1 class_createInstance
1 class_createInstance
10 -[NSCompoundPredicate predicateFormat]
8 -[NSCompoundPredicate _subpredicateDescription:]
7 -[NSComparisonPredicate predicateFormat]
7 +[NSString stringWithFormat:]
6 -[NSPlaceholderString initWithFormat:locale:arguments:]
6 _CFStringCreateWithFormatAndArgumentsAux
6 _CFStringAppendFormatAndArgumentsAux
6 _NSDescriptionWithLocaleFunc
2 -[NSNumber descriptionWithLocale:]
2 -[NSString initWithFormat:locale:]
1 -[NSPlaceholderString initWithFormat:locale:arguments:]
1 _CFStringCreateWithFormatAndArgumentsAux
1 _CFStringAppendFormatAndArgumentsAux
1 snprintf_l$LDBL128
1 __vfprintf$LDBL128
1 dyld_stub_localeconv_l
1 dyld_stub_localeconv_l
1 -[NSString initWithFormat:locale:]
1 -[NSPlaceholderString initWithFormat:locale:arguments:]
1 -[NSPlaceholderString initWithFormat:locale:arguments:]
1 -[NSCustomPredicateOperator symbol]
1 -[NSCustomPredicateOperator symbol]
1 -[NSKeyPathExpression predicateFormat]
1 -[NSKeyPathExpression pathExpression]
1 -[NSKeyPathExpression pathExpression]
1 -[NSKeyPathSpecifierExpression predicateFormat]
1 -[NSString componentsSeparatedByString:]
1 -[NSCFString copyWithZone:]
1 +[NSArray allocWithZone:]
1 +[NSArray allocWithZone:]
1 class_respondsToSelector
1 look_up_method
1 _cache_getMethod
1 _cache_getMethod
1 +[NSString stringWithFormat:]
1 +[NSString stringWithFormat:]
1 -[NSPlaceholderString initWithFormat:locale:arguments:]
1 _CFStringCreateWithFormatAndArgumentsAux
1 CFStringCreateCopy
1 __CFStringCreateImmutableFunnel3
1 __CFStringCreateImmutableFunnel3
2 +[NSString stringWithFormat:]
2 -[NSPlaceholderString initWithFormat:locale:arguments:]
2 _CFStringCreateWithFormatAndArgumentsAux
1 CFStringCreateMutable
1 CFStringCreateMutable
1 _CFRelease
1 _CFRelease
6 +[NSString stringWithFormat:]
6 -[NSPlaceholderString initWithFormat:locale:arguments:]
6 _CFStringCreateWithFormatAndArgumentsAux
5 _CFStringAppendFormatAndArgumentsAux
2 CFStringAppend
2 CFStringGetBytes
2 __memcpy
2 __memcpy
1 _CFStringAppendFormatAndArgumentsAux
1 _NSDescriptionWithLocaleFunc
1 -[NSDictionary descriptionWithLocale:indent:]
1 look_up_class
1 NXHashGet
1 classIsEqual
1 classIsEqual
1 __compare_and_swap32b
1 __compare_and_swap32b
1 CFStringCreateCopy
1 __CFStringCreateImmutableFunnel3
1 __CFStringCreateImmutableFunnel3
4 CFDictionaryGetValue
4 __CFDictionaryFindBuckets1b
2 CFEqual
2 CFEqual
1 __CFDictionaryFindBuckets1b
1 __CFStringEqual
1 __CFStringEqual
4 open$NOCANCEL$UNIX2003
4 open$NOCANCEL$UNIX2003
3 -[NSString(NSPathUtilities) fileSystemRepresentation]
3 -[NSString(NSPathUtilities) fileSystemRepresentation]
1 +[NSPathStore2 pathStoreWithCharacters:length:]
1 _NSStripTrailingPathSlashes
1 _NSStripTrailingPathSlashes
1 +[NSString string]
1 dyld_stub_CFMakeCollectable
1 dyld_stub_CFMakeCollectable
1 -[NSCFDictionary setObject:forKey:]
1 CFDictionarySetValue
1 CFDictionarySetValue
1 -[NSFileAttributes fileSystemFileNumber]
1 -[NSFileAttributes fileSystemFileNumber]
1 -[NSFileManager fileSystemRepresentationWithPath:]
1 +[NSData(NSData) dataWithBytesNoCopy:length:]
1 NSAllocateObject
1 __CFSetLastAllocationEventName
1 __CFSetLastAllocationEventName
1 fcntl$NOCANCEL$UNIX2003
1 fcntl$NOCANCEL$UNIX2003
8 +[NSString stringWithFormat:]
8 -[NSPlaceholderString initWithFormat:locale:arguments:]
8 _CFStringCreateWithFormatAndArgumentsAux
6 _CFStringAppendFormatAndArgumentsAux
3 snprintf_l$LDBL128
3 __vfprintf$LDBL128
2 __sfvwrite
1 __sfvwrite
1 dyld_stub_memcpy
1 dyld_stub_memcpy
1 __vfprintf$LDBL128
1 _CFRetain
1 _CFRetain
1 _CFStringAppendFormatAndArgumentsAux
1 _NSDescriptionWithLocaleFunc
1 class_respondsToSelector
1 _cache_addForwardEntry
1 _cache_addForwardEntry
1 CFStringCreateCopy
1 __CFStringCreateImmutableFunnel3
1 __CFStringCreateImmutableFunnel3
1 CFStringCreateMutable
1 _CFRuntimeCreateInstance
1 malloc_zone_malloc
1 szone_size
1 szone_size
1 +[NSFileAttributes _attributesAtPath:partialReturn:error:]
1 LSCopyItemInfoForRef
1 _LSCopyInfoForNode
1 FSNodePrepareCatalogInfo
1 FSGetCatalogInfo
1 PBGetCatalogInfoSync
1 GetFSRefAttributes(FSMount*, FSRefPrivate const*, unsigned long, FSAttributeInfo*, unsigned long, char*)
1 FSMount::getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
1 VolFSMount::_getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
1 GetVolFSAttributes(VolumeInfo*, unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned long, FSVolAttributeInfo*, unsigned char*)
1 getattrlist_retry(unsigned int, unsigned long, char const*, unsigned long, attrlist*, void*, unsigned long, unsigned long)
1 getattrlist$UNIX2003
1 getattrlist$UNIX2003
1 -[NSPredicate evaluateWithObject:]
1 -[NSPredicate evaluateWithObject:]
1 CFDictionaryGetValue
1 CFDictionaryGetValue
1 FSPathMakeRefInternal(unsigned char const*, unsigned long, unsigned long, FSRef*, unsigned char*)
1 PathGetObjectInfo(char const*, unsigned long, unsigned long, VolumeInfo**, unsigned long*, unsigned long*, char*, unsigned long*, unsigned char*)
1 GetPathVolFSAttributes(char const*, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
1 getattrlist$UNIX2003
1 getattrlist$UNIX2003
7 -[NSFileManager fileExistsAtPath:]
7 _NSFileExistsAtPath
6 lstat
6 lstat
1 -[NSFileManager getFileSystemRepresentation:maxLength:withPath:]
1 _CFStringGetFileSystemRepresentation
1 CFStringGetFileSystemRepresentation
1 CFStringGetCharacters
1 CFStringGetCharacters
5 +[NSFileAttributes _attributesAtPath:partialReturn:error:]
2 LSCopyItemInfoForRef
2 _LSCopyInfoForNode
2 FSNodePrepareCatalogInfo
2 FSGetCatalogInfo
2 PBGetCatalogInfoSync
2 GetFSRefAttributes(FSMount*, FSRefPrivate const*, unsigned long, FSAttributeInfo*, unsigned long, char*)
2 FSMount::getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
2 VolFSMount::_getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
2 GetVolFSAttributes(VolumeInfo*, unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned long, FSVolAttributeInfo*, unsigned char*)
2 getattrlist_retry(unsigned int, unsigned long, char const*, unsigned long, attrlist*, void*, unsigned long, unsigned long)
2 getattrlist$UNIX2003
2 getattrlist$UNIX2003
2 lstat
2 lstat
1 FSPathMakeRefInternal(unsigned char const*, unsigned long, unsigned long, FSRef*, unsigned char*)
1 PathGetObjectInfo(char const*, unsigned long, unsigned long, VolumeInfo**, unsigned long*, unsigned long*, char*, unsigned long*, unsigned char*)
1 GetPathVolFSAttributes(char const*, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
1 getattrlist$UNIX2003
1 getattrlist$UNIX2003
4 objc_msgSend_rtp
4 objc_msgSend_rtp
2 +[NSObject allocWithZone:]
2 _internal_class_createInstanceFromZone
1 _internal_class_createInstanceFromZone
1 dyld_stub_calloc
1 dyld_stub_calloc
2 -[NSFileManager directoryContentsAtPath:matchingExtension:options:keepExtension:error:]
1 -[NSFileManager fileSystemRepresentationWithPath:]
1 -[NSString isEqual:]
1 -[NSPathStore2 isEqualToString:]
1 -[NSCFString getCharacters:range:]
1 -[NSCFString getCharacters:range:]
1 _NSDirectoryContentsFromCarbonError
1 FSGetCatalogInfoBulk
1 PBGetCatalogInfoBulkSync
1 VolFSMount::getattrsbulk(void*, unsigned long, unsigned long*, unsigned long, unsigned long, FSAttributeInfo*, unsigned char*, unsigned char*)
1 getdirentriesattr
1 getdirentriesattr
1 +[NSDate dateWithTimeIntervalSince1970:]
1 -[__NSPlaceholderDate initWithTimeIntervalSinceReferenceDate:]
1 CFDateCreate
1 _CFRuntimeCreateInstance
1 CFAllocatorAllocate
1 CFAllocatorAllocate
1 NSPopAutoreleasePool
1 -[NSObject release]
1 __CFDoExternRefOperation
1 CFBagContainsValue
1 __CFBagFindBuckets1a
1 __CFBagFindBuckets1a
23 -[NSCompoundPredicate evaluateWithObject:substitutionVariables:]
23 -[NSCompoundPredicateOperator evaluatePredicates:withObject:substitutionVariables:]
23 -[NSComparisonPredicate evaluateWithObject:substitutionVariables:]
22 start
22 start
19 __newAttr
17 mdsFetchAttributesForItems
17 mach_msg
17 mach_msg_trap
17 mach_msg_trap
1 MDPlistBytesAppendPlist
1 MDPlistBytesEndPlist
1 _CFRelease
1 _CFRelease
1 _CFRelease
1 __MDPlistBytesFinalize
1 munmap$UNIX2003
1 munmap$UNIX2003
3 start
3 MDItemCreate
1 MDPlistBytesAppendPlist
1 MDPlistBytesEndPlist
1 _CFRelease
1 _CFRelease
1 accurate_realpath
1 open$UNIX2003
1 open$UNIX2003
1 mdsFetchItemsForPaths
1 mach_msg
1 mach_msg_trap
1 mach_msg_trap
1 -[NSLikePredicateOperator performPrimitiveOperationUsingObject:andObject:]
1 +[_NSPredicateOperatorUtilities doRegexForString:pattern:patternLength:flags:]
1 doCaseFoldingForString
1 u_strFoldCase
1 u_strcasecmp
1 uprv_free
1 uprv_free
6 FSGetCatalogInfo
6 PBGetCatalogInfoSync
5 GetFSRefAttributes(FSMount*, FSRefPrivate const*, unsigned long, FSAttributeInfo*, unsigned long, char*)
5 FSMount::getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
5 VolFSMount::_getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
5 GetVolFSAttributes(VolumeInfo*, unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned long, FSVolAttributeInfo*, unsigned char*)
4 getattrlist_retry(unsigned int, unsigned long, char const*, unsigned long, attrlist*, void*, unsigned long, unsigned long)
4 getattrlist$UNIX2003
4 getattrlist$UNIX2003
1 UnpackAttributeBuffer(attrlist const*, void const*, FSAttributeInfo*, FSVolAttributeInfo*, unsigned char*, unsigned long*, unsigned long*, unsigned char, unsigned char, _acl**, unsigned char (*) [16], unsigned char (*) [16])
1 __memcpy
1 __memcpy
1 PBGetCatalogInfoSync
3 +[NSString stringWithFormat:]
3 -[NSPlaceholderString initWithFormat:locale:arguments:]
3 _CFStringCreateWithFormatAndArgumentsAux
3 _CFStringAppendFormatAndArgumentsAux
3 _CFStringAppendFormatAndArgumentsAux
1 +[NSFileAttributes _attributesAtPath:partialReturn:error:]
1 lstat
1 lstat
5 +[NSFileAttributes _attributesAtPath:partialReturn:error:]
3 LSCopyItemInfoForRef
3 _LSCopyInfoForNode
1 FSNodePrepareCatalogInfo
1 FSGetCatalogInfo
1 PBGetCatalogInfoSync
1 GetFSRefAttributes(FSMount*, FSRefPrivate const*, unsigned long, FSAttributeInfo*, unsigned long, char*)
1 FSMount::getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
1 VolFSMount::_getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*)
1 GetVolFSAttributes(VolumeInfo*, unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned long, FSVolAttributeInfo*, unsigned char*)
1 getattrlist_retry(unsigned int, unsigned long, char const*, unsigned long, attrlist*, void*, unsigned long, unsigned long)
1 getattrlist$UNIX2003
1 getattrlist$UNIX2003
1 _LSCanSetExtensionHidden
1 _LSCanHideExtension(LSContext*, FSNode*, LSUniChars const*, LSUniChars const*)
1 _LSIsKnownExtensionUnicode
1 XCFBufInitWithUnicode
1 XCFBufInitWithUnicode
1 _LSContextInit
1 _LSDatabaseNeedsUpdate(LSDatabase*)
1 _LSDatabaseNeedsUpdate(LSDatabase*)
2 _attributesAtPath
1 listxattr
1 listxattr
1 objc_msgSend_rtp
1 objc_msgSend_rtp
4 -[NSFileManager directoryContentsAtPath:matchingExtension:options:keepExtension:error:]
4 _NSDirectoryContentsFromCarbonError
2 CFStringCreateWithCharacters
2 __CFStringCreateImmutableFunnel3
2 __CFStringCreateImmutableFunnel3
2 FSGetCatalogInfoBulk
2 PBGetCatalogInfoBulkSync
2 VolFSMount::getattrsbulk(void*, unsigned long, unsigned long*, unsigned long, unsigned long, FSAttributeInfo*, unsigned char*, unsig
rekrabm
 
Posts: 4
Joined: Fri Jun 29, 2007 3:49 pm
Location: San Francisco Bay area, California

Same Problem with Leopard+G5 Sat Jan 19, 2008 6:17 am • by niblo
Hi,

I am currently testing again Hazel after trying it in its earlier versions.
I have to say I am very pleased with what it offers and I have so far established some nice little rules that help me keep things tidy.

So, I am thinking of getting a license soon. Unfortunately for some days my Mac runs very slow and I discovered that the mds Process causes this behaviour. Googling around I found this thread and alas, the solution is to kill the hazelfolderwatch. Instantly the mds Process stops to consume CPU.
Hazel monitors three folders and subfolders with quite a lot of files. I am now trying to change the rules, so that it has to deal with less files.

I hope that there is a solution for that behaviour because Hazel looks realing promising and might become indespensable, that is, if it does not slow my Mac down that much.


Greetings
Alex
niblo
 
Posts: 2
Joined: Tue Mar 06, 2007 1:04 pm

Dear Mr. Noodle Sun Jan 20, 2008 3:01 am • by rekrabm
Hi Paul,
I'm sorry but I was out of the country and suffering from a major work spike. I haven't been able to run any more instrumented runs other than what we already discussed about this problem.
I'll look for more opportunity, but I don't expect it soon.
Cheers,
Matthew
rekrabm
 
Posts: 4
Joined: Fri Jun 29, 2007 3:49 pm
Location: San Francisco Bay area, California

Mon Jan 21, 2008 5:02 pm • by Mr_Noodle
Alex: Could you post your machine specs? Also, feel free to email me with copies of your rules if you think they may be a bit inefficient. If you have huge file trees, that's just more files for Hazel to scan so you may need to consider whether you really need all those files/folders looked at all the time. Also, if you find things slow again, launch Activity Monitor, find the hazel process and do "View->Sample Process" on it.

Matthew: No problem. I still haven't been able to replicate this, even on my PowerBook G4. I'll keep an eye on this so hopefully we'll reach some sort of breakthrough on what's going on here.
Mr_Noodle
Site Admin
 
Posts: 11255
Joined: Sun Sep 03, 2006 1:30 am
Location: New York City

Tue Jan 22, 2008 11:59 am • by iar
hi
i just downloaded hazel today to evaluate it and almost immediately since installing it the same thing started happening to me.
On my 2.4Ghz Macbook Pro with Leopard using the simple base kinkless desktop rulesets every couple of minutes mds and hazelfolderwatch consume loads of cpu.

usually mds reported as ~90% and hazelfolderwatch ~40%

not a good start :S
anyway saw this post whilst searching for an answer and thought i might as well chime in with a 'me too' because of the different hardware
iar
 
Posts: 2
Joined: Tue Jan 22, 2008 11:49 am

Tue Jan 22, 2008 5:10 pm • by Mr_Noodle
Thanks for the report. When you mentioned the Kinkless rules, it got me thinking.

Try this:
- In the rules for the Desktop, disable the "Run these rules inside desktop folders" rule.
- Monitor and see if this changes CPU usage.

If that does improve things, then it may be an issue where the Kinkless rules are using overlapping rule sets and they are fighting over the same set of files. Let me know what you find.
Mr_Noodle
Site Admin
 
Posts: 11255
Joined: Sun Sep 03, 2006 1:30 am
Location: New York City

Tue Jan 22, 2008 6:30 pm • by iar
you know what, it may have been my fault. :oops:
I left a folder on the desktop - which i forgot about - containing several thousand files to sort, which i've just realised would have been part of the desktop ruleset for adding the colour labels.

I have moved it out of hazel's way now and I've not seen the cpu spike again yet. fingers crossed.

thanks / sorry
iar
 
Posts: 2
Joined: Tue Jan 22, 2008 11:49 am

Thu Jan 24, 2008 11:52 am • by Mr_Noodle
Heh, no problem. You may want to also think about whether you want the rules in Inbox and Outbox to descend into folders. You could argue that when you add a folder, it's a single "unit".

Post here if the problem surfaces again though.
Mr_Noodle
Site Admin
 
Posts: 11255
Joined: Sun Sep 03, 2006 1:30 am
Location: New York City

bad rules Wed Jan 30, 2008 5:47 am • by niblo
Ah, the same happened to me. I had a set of rules applied to a project folder but I did not realize that it descended into every folder working on every file. I turned that of and it now works as expected.

Cheers
Alex
niblo
 
Posts: 2
Joined: Tue Mar 06, 2007 1:04 pm


Return to Support