gpt4 book ai didi

Python、ctypes 和 mmap

转载 作者:太空狗 更新时间:2023-10-29 18:27:00 29 4
gpt4 key购买 nike

我想知道 ctypes 包是否可以与 mmap 接口(interface)。

目前,我的模块分配一个缓冲区(使用 create_string_buffer),然后使用 byref 将其传递给我的库 mylib.read 函数。顾名思义,这会将数据读入缓冲区。然后我调用 file.write(buf.raw) 将数据写入磁盘。然而,我的基准测试表明这远非最佳(花在 file.write 上的时间比花在 mylib.read 上的时间更好)。

因此我很想知道 ctypes 是否可以与 mmap 互操作。给定一个 mmap.mmap 实例和一个偏移量,我如何才能将指针 (c_void_p) 放入地址空间?

最佳答案

mmap 对象“支持可写缓冲区接口(interface)”,因此您可以使用 from_buffer class 方法,所有 ctypes 类都有,以 mmap 实例作为参数,创建你想要的 ctypes 对象,即,共享 mmap 实例映射的内存(以及底层文件)。我想,具体来说,你会想要一个合适的 ctypes array .

关于Python、ctypes 和 mmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3640092/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com