New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Speed improvements #323
Speed improvements #323
Conversation
hmm...care to elaborate? :-) |
@HenningJ patience! :P |
This causes a merge conflict with your web search icons branch in |
Right you are. the favicon method doesn't exist in my web search icons branch. I can revert that change here and resubmit - shouldn't cause any problems. |
I think I’ve found a problem with this. I’ll dig into it more as I can. Not 100% of the time, but pretty consistently reproducible: If I enter text in the first pane then tab to the second, the interface locks until you restart. The console says
|
Noticed this seems to be in QSLibrarian, which the Yojimbo module uses. Can’t right arrow into Yojimbo.app either.
Still investigating. |
What interface? |
My first thought was that it’s my new flaky interface, but I was able to reproduce it in several others. Just did this to confirm:
Quicksilver will be useless after that. |
Right you are. I'd accidentally enumerated the keys instead of the objects. I'll check over the rest of the code now to make sure I haven't done this more than once |
...and not enumerating the dictionary's values instead of the keys would be why the last NSEnumerator wasn't working and somebody had added a 'caution, don't change this one' note. |
OK, I’ve built this in and will run with it for a while. |
Sweet. Sounds good :) Once this is done, I'll add another pull with changes to the DEBUG stuff. On 21 May 2011 00:00, skurfer <
|
@@ -612,11 +611,11 @@ static float searchSpeed = 0.0; | |||
} | |||
|
|||
- (NSMutableArray *)scoredArrayForString:(NSString *)string { | |||
return [self scoredArrayForString:string inSet:nil]; | |||
return [self scoredArrayForString:string inSet:nil mnemonicsOnly:NO]; | |||
} | |||
|
|||
- (NSMutableArray *)scoredArrayForString:(NSString *)string inNamedSet:(NSString *)setName { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not really related to this pull request but maybe we should mark this method as @deprecated (to speak a little Java here) since setName is not used...
Yeah, I've done that now :) |
I haven’t encountered any more stability problems with this. I also looked through every one of the diffs and it looks good. Looking forward to the upcoming DEBUG changes. |
Seems to have reduced QS RAM usage by ~400kB when comparing to 59 (may have On 21 May 2011 14:13, skurfer <
|
This pull has a few different things in it.
This gives the appearance of QS being snappier (that's half of it eh?) and the closing time was just too long and has been annoying me for a while
setFrame:display:animate
method callsanimationResizeTime
dynamically to get the resize time. By default it is set to 0.2s but Apple states it could change at any time. I just did an over ride of this method and set it to 0.01s - makes the 3rd pane resizing snappier ;)I'm not entirely sure if this will speed up Quicksilver, but I think so, for these reasons:
Apple states in the fast enumeration discussion that
Previously, NSEnumerators were being created then fast-enumerated on. I don't think that this is as efficient as it is now: The NSEnumerators are now being created directly, and I guess the OS has a better idea of when to release them (straight away) than if they were created by the code (as it was).
Also, this is exactly how Apple writes fast enumeration: As per their docs, it looks nicer and is a lot easier to read (IMO)
Finally, since there are lots and lots of fast enumerations changed, it's be good if you guys could glance over them - I've debugged the ones that I thought may be 'dodgy' and it all seems good.
Here are a few places where you may care to take a look:
Pretty sure I've done this right and I've stepped through it a few times in the debugger. Looks good.
Not fast enumeration related