1Password for Windows on ARM64
Hello,
The Surface Pro X launched yesterday and I've been experimenting with which apps work well with the x86 translation and which don't, and unfortunately the Windows Desktop version of 1Password does not work well. The app seems to have full functionality, but runs incredibly slow, taking about 10 seconds to open or unlock and 5-10 seconds to perform any actions, such as searching, clicking on a record, or filling a forms in a browser.
Thankfully the 1Password X extension for chrome running on an ARM64 compiled Chromium Edge build works fast and flawlessly, but I really miss being able to use Windows Hello to unlock my vault and generally prefer 1Password running in it's own app. This is a sufficient workaround for now, but I wanted to ask if you are considering bringing back the UWP app and compiling for ARM32 or ARM64 or working on a version of desktop 1Password that is compiled for ARM32 or ARM64?
1Password Version: 7.3.712
Extension Version: 4.7.5.90
OS Version: Windows 10 on ARM
Sync Type: 1Password Cloud
Comments
-
Hi @Justing6,
Thanks for reporting this.
First, congratulation on your Surface Pro X, I hope you're enjoying it.
Our lead Windows developer, Serg, just got his SPX unit now and he's in process of testing and figuring out what's causing the slow performance. Until then, it's too early to say what we can do for now.
As for ARM64, there's not much we can say there with any certainty. The odds are we would port the desktop build to ARM64 if possible but for now, we'll look at what we can do with the current x86 build to make it run better before we do any porting and such a port would have to wait. We have a lot of lower level integrations with Windows, so while it may be simple to port for most apps, that usually isn't the case for us.
0 -
That's great news! You're right, as 1Password is a pretty low resource application, having it work well translated to x86 would also work great on the SPX. Unfortunately, lower level integrations with Windows seems to be what causes translated apps to perform poorly, but I hope you guys can figure it out!
The only other bug I noticed besides the application running very slowly was that it seemed to occasionally take a lot of resources in the background (up to 10% of CPU) even with the app window was closed and it was running in the taskbar.
Please let me know if there's any other diagnostic data I can provide to help Serg out with his testing!
0 -
Hi @justing6,
Serg isn't noticing any CPU usage when the window is closed; so that may be something else. Could you email us your diagnostics report, it may tell us what the problem could be. Please use this guide to generate the report and email it to us at support+windows@agilebits.com. Also, in the email, include the link to this thread along with your forum username, so that we can connect the email to this thread.
Let us know here when you've sent it, so we can confirm we got the email.
0 -
Hi @justing6,
Do you have another app that uses Windows Presentation Foundation (WPF)? We use it to render 1Password's UI.
Another app I can think of is Markdown Monster if you want to give it a try and see if it shows the same issues as 1Password on Surface Pro X.
0 -
I don't think I have another app that uses WPF, but I tested installing Markdown Monster and it seems to run fine. Scrolling up and down the demo HTML document consumes about 10% CPU (around the same as ARM64 compiled edge takes to scroll) and is smooth. There is also no noticeable lag or loading time when opening menus or editing the text.
In contrast, 1Password consumes about 16% CPU while scrolling and hangs for a second or so about every 20 records if you're scrolling quickly. Clicking on a record also consumes about 16% CPU for 3 to 4 seconds while the record loads, while this is practically instant running on a x64 processor or in 1Password X on my Surface.
The three main times it seems like the 1Password app hang is when the app is launched (regardless if its running in the taskbar or not), when scrolling, and when viewing/creating a record or category. Most other interactions with the app are quick, such as editing text in records or generating passwords in records. Even searching is quick, just the end result of having to load the record you searched for is slow
The amount of time the app hangs seems to be tied more to how many records are in the current view more than how much data is in the record. When I'm viewing a category with only 8 records, items load slower than normal but fast enough to be usable, within a second or so. But when I'm viewing all records (over 130), loading even a password only record can take up to 5 seconds.
The CPU usage while closed might have been a fluke, I can't reproduce it either. I'll keep an eye out for it again and send the diagnostic info if it does.
0 -
@justing6: Ah, 10-16% isn't a huge difference. I would have expected more since 1Password for Windows has to decrypt data to display items in the list when scrolling. Most apps obviously don't need to do that. :) Honestly, it sounds like the crypto operations (including loading the full details of an item to display when selected) is fairly consistent. Indeed, I'd expect that you'd see more pf a performance hit with a large window than a smaller one, due to loading more information on the fly. 1Password X is significantly more lightweight, both because of constraints of running entirely in the browser and because it just has less features and UI than the desktop app. We'll be following closely, and adjusting as needed, as Microsoft fleshes out WPF support on ARM64 over the next year or so. Thanks so much for sharing your findings with us! Having a developer testing this here is good, but having real-world feedback from a user is incredibly valuable. Cheers! :)
0 -
Hi - I wanted to second justing6's post - the key activities I notice speed differences are in (a) searching the list - I have 321 entries and (b) rendering a detail pane once an item is clicked on. I am a huge fan of 1Password and deeply appreciate how many platforms it is on!
0 -
Thanks for the encouragement, and your support! Indeed, non-ARM64-native code is going to be slow on a Surface Pro X or others of its ilk, especially for things which are resource intensive (crypto, video, gaming). I'm sure that Microsoft knows that better than any of us and is working both on improving performance of the translation layer where possible and also getting Windows frameworks ready for ARM64 in general. :)
0 -
Hi @3dvn,
I'm not familiar with the emulation settings you are referring to, do you have more information?
There is no emulation setting we can adjust as far as we are aware, the whole point of emulation is that the app doesn't know anything about it; it is all done transparently by Windows.
0 -
Hi @MikeT, Windows provides a few user-modifiable emulation adjustment settings per-executable under the compatibility section:
I've tried (admittedly without an understanding of what is causing the slow down) to adjust these in a few ways, but haven't had much luck. Happy to send over any logs or info that might help, if you think any of these could aid with the emulation of the current app.
0 -
Thank you! I may be mistaken, but based on the description I would only anticipate those options decreasing performance. I suspect they exist to work around more heinous compatibility issues caused by the translation which result in an app not working at all. Only Microsoft would know for sure, but the corollary would seem to be that all of the features which can help with performance are on by default, instead having the option to opt out of them in cases where they harm more than they help.
0 -
Yep - figure they wouldn’t help directly with performance, but was thinking that If the speed was due to some extreme error handling, some combination of those may be slightly helpful.
...or I’m just really hopeful. This device has been a game changer for me, not needing to haul around a Mac, iPad and deal with a VM 😉.
0 -
Makes sense. Probably doesn't hurt to try anyway! Honestly, I hope that this works out for Microsoft and for you, because I have that same dream myself. Cheers! ;)
0 -
I'm using my SPX and 1password and it's great - but just super slow.. Hope you guys can make a native version!
0 -
I'm glad you're enjoying the new shiny, @BenA! I'll admit some moderate jealousy for sure. I'm not mobile that often so it's tough to justify a new laptop, but every time I am away from my home office I'm running a fairly old Surface so I've definitely had some Surface envy problems.
I won't completely shut the door on something ARM native, but I do want to be realistic about the best case scenario – if it happens, it'll probably be a good long while. We're in the midst of a larger (very important and worthwhile) project that touches nearly every part of 1Password and that needs to get done first which means it would take a chunk of time to get there. Given that, I would encourage anyone using a Surface Pro X with a 1Password membership to give strong consideration to 1Password X:
https://support.1password.com/getting-started-1password-x/
I've heard from others that Chrome runs fairly well on the Surface Pro X. Firefox, if my memory isn't failing me, has an ARM native version. The new Edge has an ARM version in beat. 1Password X will work in any of these browsers and since the browser is its home, it should run far better than the desktop app and the reports I've had from customer giving it a try bear that out. For the moment, this is likely to be the best solution in the short term. Anything more is going to take some time. And who knows? You might find you love it and want to switch everywhere. :chuffed:
0 -
Hi guys,
Just to keep everyone on the same page; there is no native ARM64 support for the .NET/WPF 4.x framework we're using in 1Password for Windows. Until that support is made available by Microsoft, we won't be to recompile 1Password as ARM64-native.
The slightly good news is that Microsoft has it currently triaged for the upcoming .NET 5.0 release late next year: https://github.com/dotnet/wpf/milestone/5
0 -
Just joining the thread so I can keep an eye. Also using the X and suffering the same slowdowns.
All my other machines work just fine, and loving the convenience and peace of mind 1password bring to my life ;) Keep up the good work!0 -
Thank you for the kind words! :)
0 -
Hi all, I'm also on the Surface Pro X here and am missing the usual blazing performance of 1Password a great deal. 1Password is not the only app that is suffering from the lack of support by MS it seems. We'll just have to wait and see I guess? Hope Agilebits will keep us posted, keep up the good work indeed! For now using 1Password X provides a solution.
0 -
Definitely keep your eyes peeled over at https://blog.1password.com/ as that's where we make all of our major announcements at @ReBrink 💙
0 -
Adding myself to the thread - have been using 1Password since v3, have 1,700+ items in the database, replaced my Surface 2 (!) with a Surface Pro X. Identical performance issues to those discussed here.
Will be keeping an eye on https://github.com/dotnet/wpf/issues/1817 as well. Thank you!
0 -
:+1: :)
0 -
And another "me too" comment - it takes 6-7 seconds for the details to show after selecting an entry. Many of my passwords are for non-browser apps and services so the extension doesn't do it for me.
I'm looking forward to improvements either from Microsoft or the 1P team.
0 -
Thank you for your feedback as well @LuckyLoki. As Mike wrote in his post above, we look forward to those changes too :+1:
0 -
Adding myself to the thread ;-)
Replaces my Surface Pro 5 with Surface Pro X - and loving it.0 -
:+1: :)
0 -
One more to chip in. Same situation here. With ARM making its way to Apple computers, and the mobile versions being of another architecture, I'm guessing that ARM-native 1Password is pretty much the future.
0 -
Thank you for chiming in as well :+1:
0 -
Thanks, adding myself as well. This is my main issue at this point in time.
0