7 ms·
APFS and HFS+ Benchmarks on 2017 Macbook Pro with MacOS High Sierra
- nvahalik 9y agoBeat me by 13 minutes! I suppose considering the benefits of APFS that the perf decreases on writes are understandable and the reads are on par with HFS+. Not bad.
- noncoml 9y agoGiven that MacOS is primarily a personal OS, the slight decrease in performance, that I am sure will be fixed as it APFS matures, is completely unimportant. What is important however is that file name are finally case sensitive! (I know you could do the same with HFS+, but some applications didn’t support it, ie Adobe)
- microcolonel 9y agoFilesystem performance is one of the main bottlenecks for OS X applications (including consumer applications).
- noncoml 9y agoI never had any problems, but maybe I am not using the same applications. Can you give some examples? I guess video editing might be one, but I cannot think of many more.
- kobeya 9y agoLarge Photo or iTunes libraries? Video editing?
- microcolonel 9y agoCommon applications like the Finder and the Dock query the filesystem when you open a context menu, among many other things that don't intuitively seem to be filesystem-dependent. But then there are applications which have a reasonable excuse to be hitting the filesystem, like iTunes or Photos or Mail. They absolutely redline the filesystem on a regular basis. The basic speed of the flash storage in a MacBook Pro frequently masks these problems, but the filesystem works against it.
- RJIb8RBYxzAMX9u 9y agoPerhaps my use case is a bit esoteric, but lack of sparse file support in HFS+ is mildly annoying. Sometimes I would forget and accidentally create a huge one, then I'd have to wait for the OS to finish zero-padding (it's non-interruptible) or fail with ENOSPC. Having a fast SSD helps. :-)
- burnte 9y agoI've never liked case-sensitivity in file-systems, personally. I've always found it to be annoying with no utility that I could discern. If main.h and Main.h are truly different, I find it more useful to make the file name more descriptive than just changing letters. Would you tell me why you find it useful? Not an argument, I'd like to know what other people do with that feature.
- noncoml 9y agoPersonally I don’t care, but got interoperability problems a couple of times. One has to be very careful when they share a git repository between case-sensitive and case-insensitive OSes
- notamy 9y ago> Would you tell me why you find it useful? I think you answered this yourself: > If main.h and Main.h are truly different, I find it more useful to make the file name more descriptive than just changing letters. I truly doubt that most users - especially non-technical users - actually would do this.
- burnte 9y agoThen what utility does it have?
- 0x0 9y agoI was of the impression that APFS would still default to case insensitive. And if it does change the default to case sensitive, wouldn't it still break apps like Adobe and Steam etc? I mean, if their problem is that they refer to internal files with the incorrect case, what does it matter how the FS is implemented on a low level.
- noncoml 9y ago> I was of the impression that APFS would still default to case insensitive. I am of the impression that you are right. I got it wrong.
- deleted 9y ago[deleted]
- beagle3 9y agoSemi off topic, but ... Is There a way in high Sierra to stop finder from littering every directory with thumbnails and other files? There was (is?) a configuration that stops it for network paths, and 10.10 used to have aseptic (a kext that redirected those) but as far as I know there was no way in 10.11 or 10.13
- robin_reala 9y agoBlue Harvest doesn’t stop the files from being created but it deletes them when it sees them automatically. Haven’t used it in years but the release notes mention APFS as supported. http://zeroonetwenty.com/blueharvest/ http://zeroonetwenty.com/blueharvest/
- Fnoord 9y agoYes, that configuration still works [1]. DeathToDSStore [2] works as well, but like Asepsis it requires you to disable SIP, and that's very much not recommended! I wonder if its possible to hook into Spotlight real-time (with mdfind?) and just delete them right after its created. Together with disabling it on networks that should be "good enough" to not see them. Might be problematic with removeable media such as USB sticks though. If you're sync/unmounting those via command line, consider a find with xargs [3] on that media before unmounting. I haven't looked at Blue Harvest as already suggested. If that still works (without disabling SIP) I'm curious how they do that. [1] defaults write com.apple.desktopservices DSDontWriteNetworkStores true [2] https://github.com/snielsen/DeathToDSStore https://github.com/snielsen/DeathToDSStore [3] find /path_to_USB_media -name .DS_Store -print0 | xargs -0 rm
- gumby 9y ago> I wonder if its possible to hook into Spotlight real-time (with mdfind?) and just delete them right after its created. Not Spotlight but the File System Events API, which was designed for precisely this kind of thing.
- BrowncoatShadow 9y agoPlease note, DSDontWriteNetworkStores only prevents finder from writing metadata files to network filesystems, as the configuration key name suggests. It does not prevent it from writing metadata on your local filesystems, you will either need to use something like DeathToDSStore (requires disabling SIP), or remove them regularly post-creation.
- microcolonel 9y agoFunnily enough, HFS+ wasn't a particularly well-performing filesystem to begin with (if compared with say... EXT4, which is similar in terms of features).
- achamayou 9y agoIt’s considerably older than Ext4 though.
- microcolonel 9y agoExt2 (closest equivalent to the first version of HFS+, which shipped in 1998 with no journaling support on Mac OS 8.1) was released in 1993. Ext3 could be considered an equivalent jump to the first HFS+ version with journaling. Both HFS+ and Ext3 extended a previously non-journaling filesystem with journaling. Ext4 is fully compatible with Ext3 images (and is in fact the default codebase for mounting Ext3 volumes on linux), but Ext3 is not fully compatible with all Ext4 images (but potentially compatible with some). Likewise, HFS+ tends to be backwards compatible with images, but old HFS+ is not forward compatible. I think it's a fairer comparison than you might imagine.
- jamescostian 9y agoThis is using a beta of High Sierra from July. I'm very curious to know what the speeds are now, when High Sierra is officially out. Also, it appears that this test was all done on that High Sierra beta - I think it would be helpful to have HFS+ numbers from Sierra (the predecessor of High Sierra). But I am very happy that this article really discusses how encryption can detract from speed. I have my mac's internal drive encrypted, and I'm always interested to see if updates will slow that encryption down or not
- matthewbauer 9y agoI would actually be surprised if they change at all. They usually would only do bug fixes between beta and release.
- Fnoord 9y agoDoes the/this beta have debugging enabled (in kernel for example)? Does this affect the performance here specifically?
- bluedino 9y agoTo make a long story short, here are the results: Speed in MB/s HFS+ HFS+ Encrypted APFS APFS Encrypted 1M WRITE 1375 1373 1372 933 1M READ 2446 2340 2162 1304 4K WRITE 852 797 502 378 4K READ 2106 1486 2156 1001
- ringaroundthetx 9y agoconclusions: higher is better, APFS is performing poorly out the gate, lets see if this materially impacts the 4k video editing you routinely do, expect improvements with future updates over time.
- khc 9y agois any of the dd tests actually valid? I don't see any of the options used that would bypass the cache.
- mitchty 9y agodd, no, they're also setting bs=N which means they're testing the speed of /dev/zero copying to that block size as well. They also don't know if either hfs/hfs+/apfs have anything like zfs' "oh you wrote an entire block of zeros, yeah I'm not doing that, I'll just mark the block as all zeros" optimization. Never use dd to benchmark file i/o! At least use something like ioperf which has the ability to tell you more about what you're benchmarking. Using dd without bypassing any vm caches is... misguided at best.
- jedisct1 9y agoNo. Wish they ran a real I/O benchmark program such as blogbench.
- jhack 9y agoWith High Sierra now officially out, it would be far more beneficial to do testing now as opposed to a beta from July.
- mappu 9y agoHere is another, more recent benchmark showing opposite results: https://www.phoronix.com/scan.php?page=news_item&px=macOS-APFS-HFS-Benchmarks https://www.phoronix.com/scan.php?page=news_item&px=macOS-AP...
- BugsJustFindMe 9y agoIt's hard to assess that article at the moment, because Larabel's conclusions don't always correspond to what is shown in the graphs. That means that at least some of one or the other are wrong. This is pointed out early in the comments, but there hasn't been a response yet.
- nodesocket 9y agoI just upgraded my old iMac (Mid 2010) to High Sierra which has a custom upgraded drive (Crucial 500GB). Running encrypted (FileVault) on previous Sierra and new High Sierra. I am not seeing any difference in terms of read and write performance according to Blackmagic Disk Speed Test. Solid 250 MB/S read and write for both HFS+ Encrypted and APFS Encrypted. The caveat is that I know the iMac machine is old. I am in the process of upgrading my one month old 2017 MacBook Pro with Touchbar to High Sierra and will return with those results to see if indeed APFS encrypted shows a significant slowdown on newer hardware.
- diwu1989 9y agoYou're saturating your SATA2 port, the bottleneck isn't the filesystem in your case, its the physical hardware.
- nodesocket 9y agoMy new MacBook Pro 2017 with Touchbar is almost done with the upgrade to High Sierra. Will advise once that is complete.
- intellix 9y agoOSX always had deep I/O issues with Docker. I was hopeful that the new filesystem would fix the issues there but looking at the results it looks like things are gonna be worse. Anyone got any benchmarks there?
- thinbeige 9y agoOT: Just develop on a remote machine with Linux and 100Mbit up and down via SSH. Then Docker flies.