基准测试-posix aio vs libaio



为了执行相关/可靠的基准测试,我如何知道应用程序是在使用libaio还是posix aio?有没有办法强制应用程序使用libaio/posix-aio?

当使用python标准读\写时,使用哪个库?

BR,好奇

我如何知道应用程序是在使用libaio还是posix aio

您可以使用strace并查看系统调用。如果程序正在使用libaio,那么libaio最终将不得不调用其中一个KAIO系统调用例如io_submit()(请参见http://man7.org/linux/man-pages/man7/aio.7.html(。在Linux上,POSIX AIO目前(2019(仅由glibc在userland中实现,因此永远不会进行这些系统调用。我想如果库是动态链接的,你也可以使用ltrace来计算发生了什么。。。

有没有办法强制应用程序使用libaio/posix-aio?

如果不重写原始源代码。POSIX AIO/KAIO的API与常规POSIX I/O的API不同,POSIX AIO的API与KAIO的不同。

使用python标准读写时,使用哪个库?

在Linux上,标准的Python读/写调用既不使用POSIX AIO也不使用KAIO——它将进行一个基本的POSIX I/O调用,该调用将由您链接的任何C库(例如glibc(实现。看见https://github.com/python/cpython/blob/5be666010e4df65dc4d831435cc92340ea369f94/Python/fileutils.c#L1529用于其中完成基本CCD_ 6呼叫。

最新更新