基准测试-posix-aio vs libaio

时间:2018-11-20 15:01:14

标签: python benchmarking

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

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

BR,  好奇

1 个答案:

答案 0 :(得分:1)

  

我怎么知道应用程序是使用libaio还是posix-aio

您可以使用<template> <div> <h2>Your Address</h2> <vue-google-autocomplete ref="address" id="map" classname="form-control" placeholder="Please type your address" v-on:placechanged="getAddressData" country="sg" > </vue-google-autocomplete> </div> </template> <script> import VueGoogleAutocomplete from 'vue-google-autocomplete' export default { components: { VueGoogleAutocomplete }, data: function () { return { address: '' } }, mounted() { // To demonstrate functionality of exposed component functions // Here we make focus on the user input this.$refs.address.focus(); }, methods: { /** * When the location found * @param {Object} addressData Data of the found location * @param {Object} placeResultData PlaceResult object * @param {String} id Input container ID */ getAddressData: function (addressData, placeResultData, id) { this.address = addressData; } } } </script> 并查看系统调用。如果程序正在使用 strace,然后libaio最终将不得不调用KAIO系统调用之一 例如libaio(请参见 http://man7.org/linux/man-pages/man7/aio.7.html)。在Linux上,POSIX AIO当前(2019年)仅由glibc在userland中实现,因此永远不会进行这些syscall。我想如果这些库是动态链接的,则可以使用io_submit()来确定正在发生的事情...

  

是否可以强制应用程序使用libaio / posix-aio?

并非没有原始源的重写。 POSIX AIO / KAIO的API与常规POSIX I / O的API不同,POSIX AIO的API与KAIO的API不同。

  

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

在Linux上,标准的Python读/写调用既不会使用POSIX AIO也不会使用KAIO-它会进行基本的POSIX I / O调用,该调用将由您要链接的任何C库(例如glibc)实现。有关进行基本ltrace的位置的信息,请参见https://github.com/python/cpython/blob/5be666010e4df65dc4d831435cc92340ea369f94/Python/fileutils.c#L1529