这是我的代码:
// init
int total;
struct aiocb aio;
bzero((char *)&aio, sizeof(struct aiocb));
aio.aio_buf = malloc(BUF_MAX1+1);
aio.aio_nbytes = BUF_MAX1;
aio.aio_fildes = write_file;
aio.aio_offset = 0;
int ret;
while (total <= 900008200){ // 858MB
ret = aio_write(&aio);
assert(ret >= 0);
while ((ret = aio_error(&aio)) == EINPROGRESS);
assert(ret == 0);
int n;
if ((n = aio_return(&aio)) > 0) {
total += n;
aio.aio_offset += n;
} else {
assert(0);
}
}
当我在 ext4 文件系统中运行时,我得到了这个结果“总(900008200)时间(12.63s)”
在 btr 文件系统中,结果是“总(900008200)时间(27.42s)”