-
Notifications
You must be signed in to change notification settings - Fork 21
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
Ideas to speed up the popup? #58
Comments
Thanks for the report. A 1s render time for the initial popup is definitely too long. What hardware and OS are you running? If you enable Developer mode in the top-right corner of the Extensions page in Chrome, you can inspect the console for QuicKey's background page. The dev build should show a startup time of ~250ms, while the built version should be ~50ms. (Enter I'm working on another version of the extension that renders the menu in a persistent popup window, so it doesn't need to re-render every time it's shown, which makes it even faster. You can check it out on this branch. |
It looks like I'm getting about 350ms in my dev version:
Fantastic about the optimized build, however. I'll start with that. I'm building from my own fork. I get the following error when I run
Is that the wrong way to build it? The persistent popup window sounds great too. |
Ah, looks like I haven't merged the fix for that from the (In general, apologies for the state of the repo. I started it when I was even more of a git newbie than I am now, so there's some wonkiness with the branches. I usually do all the work on |
Okay, |
Ah great! I merged master and after Does that sound correct? I'd expected the Either way, much faster now! I forgot to mention my hardware--I'm using a mbpro that is a couple years old. Not especially beefy but I don't think too underpowered either. And no worries at all about git. The repo doesn't strike me as out of order, and we're all git newbies anyways. =) I don't even rebase, I just merge like a curmudgeon. |
The paths are a little confusing. Are you seeing any difference in speed between the store version and your local built version? They should perform the same. |
Ah, I see. The locally built version and the store version perform the same, as far as I can tell. I think I just needed the optimized build. Is the React-free version of the UI also ready to play around with? I think I'm satisfied with the speed as it is now, but if you want more eyes on the other version I'm happy to try running it. |
The popup window version still uses React. It just shows the menu in a popup window and then keeps that around when it's hidden, either behind another window, in a tab or minimized (there are different tradeoffs). That way, the whole process doesn't have to restart when it's reshown, unlike the drop-down from the toolbar, so it's noticeably faster. The other advantage of the popup is that it lets you navigate with a single key. So if It would be great if you could check it out, especially since I haven't done a ton of testing on Mac. It's on the |
Finally got around to trying this. It works for me on Mac. The merge with my other branch with the extra config was pretty hairy for some reason, so I didn't leave it on for long. It seemed to work though. It was almost instantaneous pulling to the front, which was great. I could see keeping it up as kind of a tab overview as well. The only thing I didn't love was that dismissing it was harder. In the current version if I search for something and can't find it (say because my history isn't going far enough back), I can use my custom escape shortcut to get rid of it. That's harder to do on this version. Still seems like a nice option, though. The speed up especially I like quite a bit. |
Thanks for checking it out. There are definitely a lot of changes on that branch, so merging may be tricky. It would probably be simpler to just reapply the additional esc shortcut changes on top of it. By the way, I added ctrl-N/P and ctrl-J/K shortcuts to the 1.6.1 release, so I think the only thing missing is other shortcuts for closing the menu/popup. |
Then I trigger the popup it opens instantaneously, but there is a noticeable lag before the tabs are populated. I'd say 500ms to 1s. The vimium tab switcher is completely instantaneous, though I like QuicKey's better. Vimium is also in the context of the page, rather than in a new context like the popup, so it is at an advantage.
Do you have any ideas about what might speed it up? I'm loading from dev rather than using the optimized version. Is React faster when running the optimized build?
I tried adding some additional timing information to the popup but I didn't see anything obvious. I was hoping that the
chrome.connect
function would be slow, or that loading the tabs would be slow. Doesn't look like it.Maybe Require or React impose a minimum on startup?
Do you have any ideas about where the bottlenecks are?
The text was updated successfully, but these errors were encountered: