为了执行相关/可靠的基准测试,如何知道应用程序是使用libaio还是posix-aio?有没有一种方法可以强制应用程序使用libaio / posix-aio?
使用python标准读/写时-使用哪个库?
BR, 好奇
答案 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。