6 ms·
I'm very skeptical this is due to safari and not Microsoft style monopolistic behavior by baking the browser into the OS so it's always loaded.
by bioemerl 4y ago
I'm very skeptical this is due to safari and not Microsoft style monopolistic behavior by baking the browser into the OS so it's always loaded.
- threeseed 4y agoNo it's simply due to priorities. Apple has always placed privacy and efficiency over new features.
- deleted 4y ago[deleted]
- smoldesu 4y ago...but part of it is also that WebKit is baked-in to MacOS, and gets it's always-on processes reused by the browser when you launch it.
- threeseed 4y agoWhich processes ? It's not like there is a webkitd and everything is done via RPC.
- deleted 4y ago[deleted]
- smoldesu 4y agoOn iOS, Cocoa uses WebKit to render text, and everything UIKit-based on MacOS gets rendered with dynamically-linked WebKit as well. It's safe to say that if your Mac is on, WebKit is probably running.
- threeseed 4y agoThere is a big difference between a dynamically-linked library and a constantly running process. I am on a Mac right now. There are no running webkit, webkitd etc processes despite me writing this in Safari.
- smoldesu 4y agoRun this: `lsof | grep webkit` You'll need to run that as the user handling WebKit processes, so sudo might be required.
- ubercow13 4y agoHow does this prove that Safari gets an inherent performance advantage over Chrome? I guess on startup there could be a slight difference if the library is already loaded in memory.
- nwienert 4y agoNo process there (Ventura, ran with sudo). And like everyone has said that would only affect startup time. Safari does absolutely blow away Chrome at startup time, but it also is more performant in basically every other way: battery, memory, runtime, window resize, tab open/close/re-open, forward/back, paint, layout... The UI also is more minimal making well built sites feel much more native than Chrome (on Mac and iOS), especially combined with all the performance. Chrome feels like a dinosaur.
- kyleee 4y agoSafari feels like how Chrome felt 10 years ago :p
- andrekandre 4y ago> On iOS, Cocoa uses WebKit to render text, and everything UIKit-based on MacOS you are saying that nstextview and friends are rendered with webkit?
- ninkendo 4y agoThey have no idea what they’re talking about, just move on.
- jamil7 4y agoLiterally everything in this comment is wrong.
- yamtaddle 4y agoThe speed with which it launches isn't what anyone here means when they claim Safari is more efficient. They mean it's far more power-efficient and doesn't harm responsiveness and performance consistency on the rest of your system (i.e. programs that aren't the browser) as much as Chrome or FF do.
- pwinnski 4y agoProcesses? No. Various parts of MacOS use the WebKit libraries for rendering, but that's a library, not processes.
- smoldesu 4y agoYou're correct, but the assumption that MacOS reuses system resources to run Safari still stands. It's not necessarily bad, it's just what the earlier comment suggested.
- lilyball 4y agoNo they aren't. There's no central webkitd or anything like that. WebKit is a framework, not a background daemon. If you quit all apps that use WebKit, then no associated processes will exist anymore. If you look in Activity Monitor all the web content processes are parented to launchd(1), but if you ask launchd about it, it'll tell you that the "responsible pid" for each web content process is the WebKit-enabled application that spawned it. And if you quit the application, all the associated web content processes shut down.
- smoldesu 4y agoSo, quit all of the WebKit apps and then check to see if WebKit libraries are still loaded. I posted instructions further down the thread, it's not hard to see for yourself.
- lilyball 4y agoIf I quit all WebKit apps then by definition I've quit everything that loads the libraries. You also seem to be very confused as to the difference between a library and a process, given what you've been saying. Having a bunch of apps using WebKit as a framework does not confer any kind of advantage on these apps. If I have an app using WebKit, and you have an app using WebKit, they don't affect each other in the slightest. The only way they would is if they were reusing shared web content processes and so didn't have to wait for those to launch, except a) I imagine launching a web content process is pretty quick, and b) they don't share web content processes so it doesn't matter.
- smoldesu 4y agoSo, do it. See what happens; WebKit is still loaded via MacOS because it's used to render UI elements that are considered part of the system. Unless you've modified the way default apps run on MacOS, WebKit should be loaded into memory from the moment you boot MacOS to the moment you shut it down.
- lilyball 4y ago
- aequitas 4y ago> and gets it's always-on processes reused by the browser when you launch it Which is a moot point on macOS, since you hardly ever close the browser application. You just close the windows and the application stays activated in the Dock.
- kitsunesoba 4y agomacOS WebKit browsers that ship their own custom build of WebKit rather than using the system version (like Orion) are just as efficient as Safari is.
- yamtaddle 4y agoI found this held on a weak Chromebox I'd stuck Void on a while back, too. Dual-core Celeron, no hyperthreading, 2GB memory. Webkit-based browsers were the only ones that approached usability on that device.
- ezfe 4y agomacOS does very little to favor Safari. It provides identical resistance to changing defaults to Safari as it does changing defaults from Safari.