![]() | 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 的新特性 |