Revision History
31-Mar-2010: Original Article.
15-Apr-2010: Added Retest Results and Commentary (skip to the bottom of the page).
Introduction
There are two main software products for Mac users who want write access to NTFS partitions – one by Tuxera and the other by Paragon.
Tuxera provides two versions, a free one named NTFS-3G (10.1.16) and a paid one that should give faster performance named Tuxera NTFS (10.1). Paragon is of a comparable price to Tuxera NTFS and is currently at Version 7, with a release candidate of Version 8 available that should also give faster performance.
In a perfect world, these two products should give comparable file system performance to the same system accessing a HFS+ partition, or the same system running Windows natively. That is the gold standard.
I could not find any existing benchmarks that compare these vendors and versions against the gold standard so I decided to try it myself. Why bother? Because I was using NTFS-3G and it was taking forever to move files around, and I thought their must be a better way.
The Hardware
Testing was conducted on MacBook Pro 2.26 GHz Intel Core 2 Duo with 4 GB 1067 MHz DDR3 running Snow Leopard 10.6.2 and no other software or devices running in the background.
On this, Parallels Desktop 5 was used to virtualise a dual-core processor with 1 GB memory running Snow Leopard 10.6.2 and Windows 7 Ultimate x64. Performance options were set to favour the virtual machine, and power options were set to favour performance.
After each product was tested, the virtual machine was rolled back to a snapshot of the original installation, leaving a clean slate for the next product.
The benchmark drive was a Western Digital Passport Essential 1TB connected by USB directly to the virtual machine. The NTFS partition was empty and freshly formatted, occupying the last half of the disk. These drives come with a Western Digital Turbo USB driver which was installed on both the host and the guest.
The Software
Benchmarking was done using IOzone 3.345 compiled as 64-bit for Mac and IOzone 3.344 pre-compiled as 32-bit for Windows. IOzone has a lot of flexibility in allowing for thorough testing, but some sacrifices had to be made for the purposes of saving time.
Specifically, only unbuffered read/write and reread/rewrite tests were run (as opposed to random, buffered, and memory mapped tests). Also the maximum file size used was equal to the total memory (1GB) instead of double (2GB) which would be required to fully see the effect of caching (at the cost of much more time).
The command-line used for all testing was: iozone -Ra -g 1G -i 0 -i 1
Notes
There are numerous variables that may skew the results of the benchmark, so in the interests of being open here are some things to keep in mind.
- By running in a virtual machine the guest can be affected by operations run on the host. I attempted to minimise the affect of this by closing all programs on the host system while the tests were running and unplugging all devices.
- NTFS-3G comes with two options, one to use no caching layer and one to use an UBLIO caching layer which is said to increase performance. For this comparison, only the UBLIO caching layer was used.
- There are likely other factors that could affect your purchasing decision that this benchmark does not take into account, for example: support, stability, reliability, and other benchmarks that are not related to throughput; for example reading, writing, and constructing metadata.
Also, charts should not be used for direct comparison with each other as colours and axis max ranges may be different. I left the charts as Excel made them in order to retain detail.
NTFS-3G Results and Interpretation with UBLIO

| 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 | |
| 64 | 200 | 2607 | 2162 | 5051 | 3022 | ||||||||
| 128 | 2556 | 3431 | 3261 | 3486 | 10378 | 11963 | |||||||
| 256 | 4473 | 4612 | 5109 | 5294 | 5439 | 5185 | 5565 | ||||||
| 512 | 4081 | 4787 | 5866 | 6338 | 10732 | 10061 | 8604 | 10173 | |||||
| 1024 | 4935 | 3040 | 4201 | 7767 | 2908 | 5069 | 7252 | 6599 | 7918 | ||||
| 2048 | 4028 | 5782 | 6692 | 7415 | 11194 | 12566 | 12902 | 12285 | 13304 | 13453 | |||
| 4096 | 5005 | 5841 | 6867 | 7171 | 7514 | 8289 | 8085 | 7297 | 6622 | 4562 | 6971 | ||
| 8192 | 3857 | 5925 | 6708 | 7420 | 13190 | 9944 | 12749 | 13130 | 12519 | 13099 | 13360 | 12643 | |
| 16384 | 4262 | 5247 | 6052 | 6599 | 6980 | 6592 | 6722 | 6805 | 6826 | 6757 | 6819 | 6771 | 6911 |
| 32768 | 0 | 0 | 0 | 0 | 6296 | 6865 | 7441 | 7616 | 6509 | 7142 | 7462 | 7682 | 7185 |
| 65536 | 0 | 0 | 0 | 0 | 6630 | 8238 | 8045 | 8271 | 8077 | 8141 | 8177 | 8269 | 8274 |
| 131072 | 0 | 0 | 0 | 0 | 6740 | 8154 | 8134 | 8187 | 7874 | 8153 | 8085 | 8014 | 8060 |
| 262144 | 0 | 0 | 0 | 0 | 6725 | 7952 | 7900 | 7701 | 7583 | 7741 | 7761 | 7776 | 7529 |
| 524288 | 0 | 0 | 0 | 0 | 6342 | 7669 | 7669 | 7849 | 7337 | 7710 | 7706 | 7700 | 7489 |
| 1048576 | 0 | 0 | 0 | 0 | 6309 | 7719 | 7621 | 7525 | 7548 | 7532 | 7610 | 7620 | 7493 |
The initial spikes appear to be a cache buffering writes up to 32M in size at up to 14MB/s, while larger files show a throughput of about 8MB/s.

| 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 | |
| 64 | 282027 | 69116 | 78334 | 453587 | 282919 | ||||||||
| 128 | 120867 | 136719 | 145107 | 360605 | 143632 | 162010 | |||||||
| 256 | 122254 | 128441 | 114755 | 507006 | 460476 | 102850 | 146449 | ||||||
| 512 | 216856 | 125365 | 139060 | 302940 | 182209 | 162949 | 130977 | 130547 | |||||
| 1024 | 87799 | 127523 | 144204 | 275940 | 161843 | 168861 | 523278 | 157997 | 169314 | ||||
| 2048 | 95571 | 122414 | 105604 | 138322 | 178615 | 162194 | 180041 | 147348 | 161350 | 153075 | |||
| 4096 | 100503 | 116330 | 120857 | 135463 | 142459 | 152064 | 156491 | 158808 | 156640 | 142907 | 141568 | ||
| 8192 | 89494 | 97366 | 97246 | 121236 | 140811 | 146589 | 147550 | 147648 | 157287 | 153900 | 143588 | 142264 | |
| 16384 | 91126 | 104149 | 115172 | 108147 | 126792 | 132854 | 146221 | 137799 | 149079 | 141259 | 126966 | 143682 | 138997 |
| 32768 | 0 | 0 | 0 | 0 | 120954 | 136286 | 143536 | 149305 | 147788 | 140748 | 140966 | 142460 | 127583 |
| 65536 | 0 | 0 | 0 | 0 | 14528 | 14657 | 14885 | 14546 | 14546 | 14543 | 14310 | 14731 | 14654 |
| 131072 | 0 | 0 | 0 | 0 | 15603 | 15766 | 15592 | 15620 | 15427 | 15725 | 15295 | 15389 | 15586 |
| 262144 | 0 | 0 | 0 | 0 | 16069 | 15853 | 15996 | 15849 | 15809 | 15739 | 15584 | 15860 | 15588 |
| 524288 | 0 | 0 | 0 | 0 | 16044 | 15942 | 16025 | 15983 | 16192 | 16259 | 15697 | 15533 | 16176 |
| 1048576 | 0 | 0 | 0 | 0 | 15767 | 15612 | 15793 | 15929 | 15681 | 15642 | 15966 | 16075 | 15911 |
Here two cache readings are likely, the initial spikes being CPU cache of 1MB at up to 50MB/s, while the next plateau is a software or operating system cache up to 32M in size at 18MB/s, and the final plateau being the throughput for larger files at about 15MB/s.
Tuxera NTFS Results and Interpretation

| 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 | |
| 64 | 4904 | 2443 | 7964 | 2700 | 24999 | ||||||||
| 128 | 6604 | 8188 | 13596 | 4484 | 19894 | 32233 | |||||||
| 256 | 6427 | 5151 | 14597 | 8426 | 20721 | 10932 | 27886 | ||||||
| 512 | 6359 | 12001 | 11004 | 9340 | 5254 | 11817 | 16448 | 18591 | |||||
| 1024 | 6302 | 7442 | 10577 | 9990 | 16206 | 9376 | 9239 | 17756 | 7273 | ||||
| 2048 | 4896 | 6079 | 9936 | 12222 | 18938 | 12401 | 10022 | 8673 | 13163 | 10108 | |||
| 4096 | 4143 | 7414 | 13211 | 25189 | 18557 | 17904 | 16677 | 13678 | 24172 | 12670 | 34576 | ||
| 8192 | 6115 | 12532 | 18361 | 25144 | 22479 | 33543 | 48330 | 31604 | 47414 | 25656 | 26065 | 32735 | |
| 16384 | 5138 | 7570 | 9109 | 10787 | 14549 | 12870 | 38382 | 13039 | 11752 | 11270 | 46429 | 12135 | 13775 |
| 32768 | 0 | 0 | 0 | 0 | 13051 | 18190 | 16822 | 17459 | 16369 | 16097 | 13329 | 11322 | 12584 |
| 65536 | 0 | 0 | 0 | 0 | 12051 | 16407 | 23924 | 23913 | 24352 | 24468 | 24884 | 24831 | 24763 |
| 131072 | 0 | 0 | 0 | 0 | 22079 | 23508 | 22375 | 23012 | 23271 | 22541 | 22792 | 22834 | 23152 |
| 262144 | 0 | 0 | 0 | 0 | 23979 | 22906 | 22984 | 22296 | 22418 | 22605 | 21592 | 22203 | 22295 |
| 524288 | 0 | 0 | 0 | 0 | 21383 | 22386 | 22484 | 22195 | 21904 | 22110 | 22123 | 22187 | 22048 |
| 1048576 | 0 | 0 | 0 | 0 | 20352 | 21979 | 22015 | 21780 | 21798 | 21509 | 21681 | 21800 | 21813 |
Tuxera NTFS write throughput appears to be better than NTFS-3G. Small files have better performance up to 32MB/s, while a cache operates at the 8MB mark at up to 49MB/s, and the final plateau for large files still transfers at up to 24MB/s. That is about on par with Windows 7 performance.

| 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 | |
| 64 | 262450 | 196972 | 219883 | 72066 | 412466 | ||||||||
| 128 | 49555 | 37092 | 52568 | 129685 | 127226 | 131399 | |||||||
| 256 | 273508 | 91656 | 85558 | 87582 | 179651 | 638445 | 567575 | ||||||
| 512 | 66089 | 104232 | 87385 | 126951 | 136749 | 70855 | 96638 | 129915 | |||||
| 1024 | 58414 | 78185 | 86435 | 105652 | 125247 | 139416 | 136059 | 104906 | 138561 | ||||
| 2048 | 72531 | 72275 | 171364 | 111242 | 120675 | 130221 | 96521 | 132953 | 113885 | 133602 | |||
| 4096 | 56413 | 68292 | 91251 | 102048 | 115043 | 127948 | 130967 | 136592 | 133934 | 124897 | 127228 | ||
| 8192 | 61266 | 75131 | 91522 | 105738 | 123509 | 121070 | 130087 | 135955 | 126143 | 126523 | 128206 | 128282 | |
| 16384 | 66627 | 78997 | 93039 | 104647 | 119779 | 129081 | 128401 | 134009 | 136683 | 136699 | 133321 | 134539 | 133769 |
| 32768 | 0 | 0 | 0 | 0 | 120503 | 124358 | 133053 | 134947 | 134559 | 133774 | 130273 | 128043 | 136316 |
| 65536 | 0 | 0 | 0 | 0 | 11887 | 20796 | 20881 | 20723 | 20429 | 20718 | 20622 | 20517 | 20614 |
| 131072 | 0 | 0 | 0 | 0 | 22813 | 22337 | 22847 | 22994 | 22576 | 22332 | 22653 | 22561 | 22096 |
| 262144 | 0 | 0 | 0 | 0 | 23767 | 22361 | 23828 | 23932 | 23966 | 23255 | 22752 | 23009 | 23216 |
| 524288 | 0 | 0 | 0 | 0 | 24061 | 23663 | 23822 | 23655 | 23926 | 23730 | 23613 | 23525 | 24196 |
| 1048576 | 0 | 0 | 0 | 0 | 23880 | 24025 | 23930 | 24377 | 24258 | 23546 | 24002 | 23727 | 24348 |
Here the scale changes completely as what appears to be CPU cache buffers files up to 32MB in size and at up to 135MB/s. The final plateau for larger files goes up to 25MB/s.
Paragon NTFS 7 Results and Interpretation

| 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 | |
| 64 | 1372 | 15940 | 44108 | 38120 | 65236 | ||||||||
| 128 | 25518 | 42009 | 42792 | 102892 | 67228 | 63304 | |||||||
| 256 | 25579 | 44221 | 77927 | 78502 | 84150 | 107247 | 109444 | ||||||
| 512 | 23900 | 32215 | 56200 | 72634 | 74953 | 73196 | 86589 | 49578 | |||||
| 1024 | 26163 | 48990 | 63027 | 67345 | 83447 | 85526 | 87911 | 88827 | 88405 | ||||
| 2048 | 28843 | 30972 | 57776 | 70450 | 74469 | 85504 | 83704 | 89459 | 97034 | 100190 | |||
| 4096 | 33932 | 51881 | 58981 | 80999 | 78194 | 92955 | 88705 | 96446 | 87898 | 93575 | 89444 | ||
| 8192 | 35872 | 48650 | 61460 | 74961 | 80010 | 90986 | 68438 | 96352 | 93344 | 100341 | 95656 | 80408 | |
| 16384 | 20766 | 33191 | 36346 | 41422 | 40982 | 38497 | 42157 | 43627 | 43546 | 43463 | 43703 | 42208 | 34918 |
| 32768 | 0 | 0 | 0 | 0 | 28130 | 34724 | 33486 | 34291 | 34398 | 29832 | 35031 | 33440 | 32317 |
| 65536 | 0 | 0 | 0 | 0 | 29009 | 30496 | 32281 | 31903 | 32224 | 30624 | 31139 | 30577 | 25354 |
| 131072 | 0 | 0 | 0 | 0 | 23506 | 28330 | 29697 | 28578 | 30258 | 29941 | 30231 | 26005 | 27204 |
| 262144 | 0 | 0 | 0 | 0 | 25217 | 28201 | 26557 | 28131 | 29501 | 28736 | 28951 | 28857 | 29475 |
| 524288 | 0 | 0 | 0 | 0 | 26828 | 32816 | 32827 | 32785 | 33009 | 33625 | 33748 | 33845 | 33548 |
| 1048576 | 0 | 0 | 0 | 0 | 31807 | 32696 | 33033 | 32780 | 32632 | 33131 | 32560 | 32769 | 32762 |
While the graph appears somewhat similar to those previous, the scale is on a completely different level. A much more evenly distributed cache scheme is present, with files up to 8MB at up to 93MB/s, and a second plateau for larger files at up to 33MB/s. Later you’ll see, this is faster than Windows 7.

| 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 | |
| 64 | 65173 | 58921 | 17897 | 111671 | 68956 | ||||||||
| 128 | 41666 | 37026 | 31991 | 35117 | 77338 | 102813 | |||||||
| 256 | 69395 | 61909 | 71607 | 42306 | 119626 | 98167 | 98392 | ||||||
| 512 | 34917 | 76486 | 66475 | 89823 | 85690 | 113426 | 86708 | 98482 | |||||
| 1024 | 30429 | 51067 | 58202 | 73988 | 67222 | 88735 | 95389 | 89975 | 57447 | ||||
| 2048 | 33020 | 59032 | 61629 | 77713 | 82914 | 92227 | 94827 | 98608 | 95746 | 95803 | |||
| 4096 | 31160 | 59260 | 67695 | 76024 | 80073 | 87262 | 86627 | 94821 | 95833 | 102893 | 91277 | ||
| 8192 | 48385 | 59902 | 71147 | 81052 | 88986 | 95050 | 92912 | 96133 | 95564 | 93828 | 94089 | 94689 | |
| 16384 | 46483 | 54866 | 49686 | 80826 | 86247 | 92884 | 96910 | 95302 | 94908 | 96885 | 96643 | 88544 | 95750 |
| 32768 | 0 | 0 | 0 | 0 | 86246 | 86516 | 97475 | 94838 | 93277 | 94035 | 96825 | 97949 | 96529 |
| 65536 | 0 | 0 | 0 | 0 | 86750 | 94680 | 95267 | 94648 | 96710 | 97237 | 96991 | 96306 | 97259 |
| 131072 | 0 | 0 | 0 | 0 | 90052 | 93688 | 95284 | 96102 | 96659 | 97445 | 97658 | 96788 | 96331 |
| 262144 | 0 | 0 | 0 | 0 | 88164 | 95086 | 94735 | 96255 | 90605 | 96589 | 91541 | 97012 | 97039 |
| 524288 | 0 | 0 | 0 | 0 | 141391 | 152457 | 149047 | 147919 | 148420 | 146750 | 148808 | 147538 | 146060 |
| 1048576 | 0 | 0 | 0 | 0 | 39261 | 40753 | 39249 | 39341 | 40160 | 40151 | 40925 | 40709 | 40590 |
Read performance for files up to 256MB sits just under 90MB/s, with a much faster cache at 141MB/s for files up to 512MB in size, and a plateau of up to 40MB/s for larger files.
Paragon NTFS 8 RC Results and Interpretation

| 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 | |
| 64 | 46889 | 57397 | 17997 | 70018 | 69187 | ||||||||
| 128 | 48985 | 60094 | 114794 | 57163 | 64715 | 392792 | |||||||
| 256 | 46310 | 89764 | 72068 | 124624 | 147212 | 94330 | 121096 | ||||||
| 512 | 87807 | 37015 | 82065 | 54618 | 92872 | 115184 | 211578 | 121444 | |||||
| 1024 | 58881 | 75305 | 129196 | 99950 | 148123 | 109860 | 95620 | 98177 | 196092 | ||||
| 2048 | 55659 | 79732 | 96891 | 107220 | 94635 | 95575 | 113174 | 152917 | 111364 | 127322 | |||
| 4096 | 59275 | 78928 | 75479 | 92970 | 116483 | 81515 | 86854 | 94076 | 90445 | 119706 | 103021 | ||
| 8192 | 57773 | 84706 | 101428 | 104959 | 72946 | 123546 | 127387 | 114770 | 107907 | 105224 | 95515 | 104063 | |
| 16384 | 31391 | 43791 | 46870 | 40728 | 47242 | 50650 | 49654 | 47705 | 50359 | 50377 | 42272 | 41120 | 44056 |
| 32768 | 0 | 0 | 0 | 0 | 34435 | 38521 | 37020 | 36505 | 40002 | 39082 | 38652 | 38257 | 38751 |
| 65536 | 0 | 0 | 0 | 0 | 30809 | 33568 | 34659 | 33833 | 35114 | 34308 | 35213 | 34631 | 35090 |
| 131072 | 0 | 0 | 0 | 0 | 30152 | 32986 | 33629 | 33415 | 33402 | 32651 | 33174 | 33359 | 33141 |
| 262144 | 0 | 0 | 0 | 0 | 29713 | 32072 | 32558 | 32311 | 31924 | 32834 | 32220 | 33192 | 32443 |
| 524288 | 0 | 0 | 0 | 0 | 29912 | 31831 | 32069 | 29088 | 31884 | 31165 | 31813 | 31933 | 31192 |
| 1048576 | 0 | 0 | 0 | 0 | 16047 | 17205 | 16112 | 17327 | 17671 | 16464 | 17486 | 17346 | 17306 |
In this graph a mix of spikes represent CPU cache with a general cache operating all the way to the 8MB line giving up to 128MB/s. This steadily decreases to the throughput for larger files at up to a disappointing 17MB/s. This could be a bug as it is so different to Paragon NTFS 7.

| 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 | |
| 64 | 68586 | 151675 | 262450 | 78242 | 229274 | ||||||||
| 128 | 98984 | 101838 | 70061 | 120650 | 123084 | 106674 | |||||||
| 256 | 135525 | 121439 | 132237 | 122492 | 111699 | 123848 | 541253 | ||||||
| 512 | 48873 | 72460 | 356322 | 122490 | 155865 | 133022 | 156057 | 618371 | |||||
| 1024 | 89778 | 97070 | 106811 | 483950 | 207498 | 105525 | 136805 | 437779 | 144025 | ||||
| 2048 | 109056 | 96476 | 121255 | 118279 | 110679 | 119411 | 125536 | 126779 | 188112 | 129973 | |||
| 4096 | 67334 | 79096 | 99880 | 164405 | 122320 | 125413 | 106249 | 110918 | 101529 | 110969 | 110894 | ||
| 8192 | 74673 | 96141 | 110686 | 131410 | 118359 | 120813 | 133882 | 119300 | 122214 | 116271 | 115318 | 138591 | |
| 16384 | 77063 | 95343 | 121924 | 116125 | 121729 | 125936 | 125523 | 124266 | 124104 | 122867 | 109039 | 120658 | 120096 |
| 32768 | 0 | 0 | 0 | 0 | 125999 | 126730 | 126261 | 126538 | 125636 | 113608 | 123536 | 122189 | 124929 |
| 65536 | 0 | 0 | 0 | 0 | 124372 | 126060 | 127338 | 128106 | 124876 | 123693 | 125168 | 124044 | 122685 |
| 131072 | 0 | 0 | 0 | 0 | 125628 | 126578 | 128984 | 126865 | 127768 | 118841 | 124752 | 124761 | 123347 |
| 262144 | 0 | 0 | 0 | 0 | 124932 | 125854 | 126592 | 126330 | 125776 | 124505 | 123168 | 123837 | 123611 |
| 524288 | 0 | 0 | 0 | 0 | 122257 | 123530 | 122695 | 123168 | 120530 | 120752 | 120626 | 121167 | 119595 |
| 1048576 | 0 | 0 | 0 | 0 | 38732 | 38949 | 39016 | 38679 | 39493 | 40429 | 41037 | 40602 | 40579 |
More CPU cache spikes are present here, along with a general buffer for files up to 512MB at 122MB/s, and for larger files 39MB/s.
Windows 7 Results and Interpretation

| 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 | |
| 64 | |||||||||||||
| 128 | |||||||||||||
| 256 | |||||||||||||
| 512 | |||||||||||||
| 1024 | |||||||||||||
| 2048 | |||||||||||||
| 4096 | |||||||||||||
| 8192 | 162115 | 183171 | 575763 | 528820 | 278146 | 278818 | 489804 | 293850 | 520892 | 388984 | 292960 | 198305 | |
| 16384 | 180866 | 230922 | 254161 | 236417 | 227072 | 305900 | 385434 | 396651 | 270149 | 293215 | 305000 | 329975 | 346869 |
| 32768 | 0 | 0 | 0 | 0 | 290256 | 273453 | 252214 | 295537 | 297223 | 297164 | 325486 | 303438 | 287345 |
| 65536 | 0 | 0 | 0 | 0 | 281242 | 295964 | 305000 | 292047 | 319834 | 307707 | 267211 | 284234 | 295530 |
| 131072 | 0 | 0 | 0 | 0 | 223685 | 277686 | 270657 | 280725 | 238930 | 256813 | 260951 | 289879 | 259183 |
| 262144 | 0 | 0 | 0 | 0 | 32702 | 33909 | 33712 | 33466 | 33585 | 33744 | 34549 | 34629 | 35186 |
| 524288 | 0 | 0 | 0 | 0 | 23361 | 23673 | 23204 | 23562 | 23147 | 23552 | 23646 | 24601 | 24425 |
| 1048576 | 0 | 0 | 0 | 0 | 20169 | 20201 | 20334 | 20571 | 20070 | 20812 | 20620 | 20981 | 21267 |
And finally, the gold standard. Smaller file sizes had to be removed due to inconsistent timing data. Write performance seems operate within a cache area up to 128MB in size at up to 280MB/s, while larger files plateau at 21MB/s.

| 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 | |
| 64 | |||||||||||||
| 128 | |||||||||||||
| 256 | |||||||||||||
| 512 | |||||||||||||
| 1024 | |||||||||||||
| 2048 | |||||||||||||
| 4096 | |||||||||||||
| 8192 | 235828 | 302399 | 314702 | 560820 | 400897 | 389905 | 443336 | 602090 | 610934 | 569844 | 417828 | 698497 | |
| 16384 | 228150 | 359810 | 371121 | 385125 | 400112 | 385234 | 377077 | 451761 | 359415 | 580625 | 398492 | 342154 | 336592 |
| 32768 | 0 | 0 | 0 | 0 | 490540 | 368813 | 386611 | 329966 | 358512 | 345771 | 321813 | 314215 | 369992 |
| 65536 | 0 | 0 | 0 | 0 | 376194 | 394372 | 381800 | 375382 | 363674 | 356334 | 353794 | 316961 | 340411 |
| 131072 | 0 | 0 | 0 | 0 | 386644 | 399769 | 382750 | 355113 | 336924 | 291275 | 331400 | 324631 | 332549 |
| 262144 | 0 | 0 | 0 | 0 | 374430 | 381269 | 394663 | 365664 | 344670 | 337592 | 333725 | 328724 | 328183 |
| 524288 | 0 | 0 | 0 | 0 | 378388 | 376095 | 387549 | 347517 | 337717 | 335846 | 328722 | 339163 | 311921 |
| 1048576 | 0 | 0 | 0 | 0 | 21702 | 23359 | 24116 | 24176 | 24301 | 24194 | 24270 | 24063 | 21952 |
For reading files, a cache operates between 8MB and 16MB at up to 560MB/s, between 32MB and 512MB at up to 400MB/s, then plateaus at 25MB/s for larger files.
Conclusion
There is so much data it appears to almost be all over the place. But I think it is safe to say the following:
- When comparing NTFS-3G to Tuxera NTFS, Tuxera wins by a long shot as it is much faster writing and reading, with almost quadruple the write speed on large files.
- When comparing Paragon NTFS 7 and 8 RC, the results are mixed with 8 RC faster at reading and writing smaller files but crippled at half the speed when writing larger files.
- When comparing Tuxera NTFS to either edition of Paragon NTFS, it lags far behind in caching and writing smaller files, and also at any file reading activity, but when writing the largest files it is faster than Paragon NTFS 8 RC. This could be due to a bug in the RC code.
For copies of the table data and more graphs, please feel free to download the attached Excel spreadsheet linked at the bottom.
Retest Results and Commentary
15-Apr-2010: I performed a simple retest to validate the results. This was on the same MacBook Pro and Passport Essential 1TB, but without any virtual machine. As this machine has 4GB of memory, I used an 8GB test file writing in 4KB increments to eliminate memory cache issues (and also as performing a full suite of tests would have taken weeks). 4KB is a standard NTFS cluster size.
| Write | Re-write | Read | Re-read | |
| NTFS-3G | 7563 | 8452 | 26512 | 26498 |
| Tuxera NTFS | 18227 | 21556 | 33131 | 33217 |
| Paragon 7 | 26238 | 27936 | 37399 | 40105 |
| Paragon 8 RC | 27041 | 28472 | 36452 | 38706 |
When comparing to my original virtual machine tests, NTFS-3G had similar write speeds but almost double read speeds. Tuxera NTFS had similar but better write speeds and almost double read speeds again. Paragon NTFS 7 which had better read and write speeds, and Paragon NTFS 8 RC had much better write speeds and better read speeds.
As you can see, all products were affected either by running in a VM or because of the low-VM memory constraint, and Paragon NTFS 7 or 8 RC still make the best choice if you’re after any kind of NTFS performance.
Please note that since writing this review, I have received a free copy of Paragon NTFS 8 for my own use as a reward for testing it, however it has in no way affected the results or my presentation of the results.
Links
Paragon Software
Tuxera Software
NTFS-3G for Mac
IOzone Benchmark
Original Benchmarks Spreadsheet (Excel)
Retest Benchmark Spreadsheet (Numbers)




