You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This isn't all that surprising, the Linux AIO interfaces are seriously neglected. It also appears that the performance of the AIO interface is deeply dependent on the underlying filesystem, and most filesystems appear to barely implement the interface let alone optimize it.
If you want good performance with very high concurrency, you are almost always better off with pre-allocated memory mapped files. The golang scheduler is now so good that pure read/write calls with go routines will probably always be faster too (as you have seen here). Pure Read/Write calls will certainly be more consistent across different filesystems.
I created a 40M file and used 4k random read and write to testing it。
When 50 working goroutines and each coroutine execute 1000 io tasks
r/w latency: 1.469s
aio latency: 6.378s
const.go
test code: r/w
test code: aio
The text was updated successfully, but these errors were encountered: