Why is fast user switching anything but fast?

I have a 2012 MacBook Pro that is shared between two other family members and me. FUS was slow under Mojave, but since upgrading to Big Sur (via OpenCore Patcher) it absolutely crawls.

The sequence looks like this:

  1. Click on the user I want to switch to, in the menu.
  2. After 20 seconds the login screen finally appears.
  3. After another 30 seconds the password prompt appears, but it’s still got a spinning pizza cursor so I can’t type anything.
  4. After another 45 seconds I can finally type the password.
  5. When the desired account appears, I then have to wait another 10-15 seconds for any open apps to refresh.

This machine has been upgraded to 16 Gb RAM and a 1 Tb SSD.

It shouldn’t take more than two minutes to switch users. Is there any magic to improving the speed of FUS?

I’ve seen the same thing, It really isn’t that fast. It takes almost as long as a log-out followed by a log-in.

This makes sense because the login (to the new user) requires creation of a new desktop environment and launching all apps that will be auto-started (including restart/resume of whatever was running the last time that account was logged out).

The big difference (and the reason it might be considered “fast”) is that the original account remains logged-in and its apps remain running. So when you switch back, it doesn’t need to start/restart anything, but only switches the set of apps that have access to your display and input devices.

In other words, I wouldn’t consider the system fast for switching to a new user, but should be significantly faster than the log out/in process if you need to switch back and forth multiple times between a few accounts.

2 Likes

Have you tested it on a brand new reboot with no apps loaded and (almost) all RAM unused? I’d be curious if that is faster.

My experience is that what makes this slow is each user has to be swapped from RAM to disk and disk to RAM. That means the amount of RAM you have free and the speed of your SSD are crucial.

It sounds like you have decent amount of RAM installed, but I don’t know how much was free when you tested this. And a 1TB SSD doesn’t tell us how fast it is. Your machine is pretty old, so it wouldn’t surprise me if both of those are very slow compared to modern machines. And more recent OSes use more resources than older ones, so it would get slower over the years.

A clean test would at least tell what the best case scenario would be, but that won’t help with real-world use cases (i.e. after you’ve loaded up apps and want to switch users).

It has been ages since I actively used fast user switching, but I remember I once tried to set up a laptop with one user for “work” and one for “personal” just to keep down on distractions. I ran into the same issues you did – it was a pain switching and took so long and used so much disk and RAM it was rather useless. I abandoned that approach and then ran into permissions problems which still occasionally beset me to this day. (I’ll try and open an old file, only to be told I don’t have permission because it was set to that old 2nd account. I have tried and tried to reset all the permissions and it has never fully worked on every file.)

I decided it’s way better/easier just to have multiple machines instead of multiple users sharing one. That used to be expensive, but since I’ve accumulated old machines as I’ve upgraded, it’s not hard any more. :blush:

1 Like

I disagree with nothing that @Shamino said.

It has been long enough ago and I do it infrequently enough that I don’t recall the details, but I did experience some problem if an app was running in user1’s space and user2 wanted to use it. I mention it in case someone notices wonky behavior and wonders what might be going on. For an unspecified and (to me, at least) unknowable-in-advance set of apps, it is better to quit apps before switching users.

I don’t doubt your observations, but macOS has been a multi-user operating system since version 10.0. Any app supported today that can’t handle multiple instances of itself running at once is a poorly written app.

I tested this last night and, yes, it was much much faster. The next time it’s crawling I will try quitting open apps to see if that improves the speed.

1 Like

No argument there. I wish I could remember which app it was, so I could shame it.

IME, macOS itself does not work well with multiple different users logged in.

I’ve had all sorts of errors and oddities. Now the issue here might have been that we were both using the Mac at the same time - one via console, the other via screen sharing - but that’s been possible since… Lion, I think.

I do not think macOS or most apps get a lot of QA testing done with two users logged in at the same time.

I know it should “just work” because there’s Unix underneath which is multi-user, but (again, IME) the GUI layer on top does not work smoothly with simultaneous users.

Also, I don’t know why but Apple removed the command-line tool for FUS in Big Sur, and hasn’t brought one back with Monterey, so I assume they changed some things “under the hood” which might not yet be optimized?

1 Like