1
wuwukai007 2020-12-07 17:09:33 +08:00 via Android
大矩阵计算,矩阵用一个,但是算法不一样,开多进程共享矩阵内存,就不需要每个进程复制一个大矩阵了,效率高,节省内存
|
2
guyskk0x0 2020-12-07 19:50:31 +08:00 via Android
http server, socket 相关场景有用到,可以避免复制内存,实现 zero copy 效果。
|
3
bilibilifi 2020-12-07 20:35:51 +08:00 via iPhone
cython 里可以很方便地暴露接口
|
4
mattx 2020-12-08 10:12:52 +08:00
@bilibilifi 问下 在 cython 的场景是怎么样的,贴个代码看看
|
5
ruanimal 2020-12-08 10:27:10 +08:00
zero copy
|
6
xiaolinjia OP |
7
ruanimal 2020-12-08 16:11:28 +08:00
@xiaolinjia
mmap 是共享内存。 zero copy 是为了避免重复 copy 对象,比如 socket 发包的时候,避免在多个缓冲区之间反复 copy 内存。zero copy 在 linux 下是基于 sendfile 实现的 |
8
xiaolinjia OP @wuwukai007 你指的是 multiprocessing.Process(target=func1, args=memoryview(sth))、multiprocessing.Process(target=func2, args=memoryview(sth))吗,还是特指 py38 的 multiprocess.SharedMemory 。我看了下 SharedMemory 的源码,确实是有用到 memoryview 和 mmap 。
|
9
wuwukai007 2020-12-08 18:45:56 +08:00 via Android
python3.8 的新特性
|