同一主机,如何减少进程间传递数据的序列化和反序列化? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
tanxnative
V2EX    程序员

同一主机,如何减少进程间传递数据的序列化和反序列化?

  •  
  •   < href="/member/tanxnative">tanxnative 2023-09-19 14:38:53 +08:00 1582 次点击
    这是一个创建于 822 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,在系统中,多个进程协同处理数据,同一机器中,进程间传递数据如何减少序列化和反序列化?

    6 条回复    2023-09-20 09:36:32 +08:00
    AoEiuV020JP
        1
    AoEiuV020JP  
       2023-09-19 15:04:58 +08:00
    除了减少进程多用线程感觉没有其他方法了,跨进程任何通信都得序列化,只能减少通信次数和内容量,
    TomVista
        2
    TomVista  
       2023-09-19 15:08:09 +08:00
    减弱数据格式.
    lDqe4OE6iOEUQNM7
        3
    lDqe4OE6iOEUQNM7  
       2023-09-19 15:08:37 +08:00
    用共享内存技术,内存队列,共享数据结构
    sujin190
        4
    sujin190  
       2023-09-19 15:13:50 +08:00 via Android
    分配共享内存,使用 c 直接在共享内存分配 struct ,其他高级语言得话加载 c 模块调用,估计应该是最快的了吧
    bianhui
        5
    bianhui  
       2023-09-20 08:54:17 +08:00
    @sujin190 那不是增加了高级语言与 c 模块之间的类型转化吗,而且如果读写频繁,转化次数更多,可能比其语言自己共享内存的方法更慢。
    sujin190
        6
    sujin190  
       2023-09-20 09:36:32 +08:00
    @bianhui #5 似乎 java 、python 这样的高级语言都并不能直接在共享内存分配对象实例吧,所以所谓共享内存要么只能放数字之类的简单对象,复杂对象还是要序列化和反序列化通过共享内存在不同进程间同步的,而且大部分高级语言加载 C 扩展的时候并没有说你一定要转换为自身的类型才能参与逻辑算法吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2485 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 12:31 PVG 20:31 LAX 04:31 JFK 07:31
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86