国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

多進(jìn)程如何共享大型數(shù)組?

dingfei

php進(jìn)程中數(shù)組占用5Gb內(nèi)存,隨著不斷循環(huán)計(jì)算數(shù)據(jù)在不斷的變化。
?
其他進(jìn)程,如何去讀取這個(gè)數(shù)組里面的數(shù)據(jù)?通過redis、GlobalData等都不行,因?yàn)橐4娴絩edis、GlobalData需要先把數(shù)組序列化,然后保存。然后讀取的又需要反序列化,非常耗時(shí)間
?
有沒有什么辦法?求各位大佬指點(diǎn)迷津

  1. 沒有辦法共享這個(gè)數(shù)組的內(nèi)存地址給其他進(jìn)程?
  2. 有沒有其他不比php數(shù)組性能差的數(shù)據(jù)結(jié)構(gòu) ?
5052 2 0
2個(gè)回答

walkor 打賞

進(jìn)程間實(shí)時(shí)同步5G的數(shù)據(jù)最好是增量同步,既同步只同步改變的部分,不改變的部分不用同步,這樣可以大大加快同步速度。但是這樣對(duì)于開發(fā)者要求較高,并且容易出現(xiàn)數(shù)據(jù)不一致。
?
最好的方法就是只用一個(gè)進(jìn)程裝這5G數(shù)據(jù),需要這5G數(shù)據(jù)的時(shí)候向這個(gè)進(jìn)程發(fā)起請(qǐng)求獲得所需數(shù)據(jù)。另外redis也有豐富的數(shù)據(jù)結(jié)構(gòu)比如hash 都可以做到只同步某個(gè)key的數(shù)據(jù),而不用把所有數(shù)據(jù)獲取出來再存進(jìn)去。

  • dingfei 2019-05-14

    受教了。試了一下,發(fā)現(xiàn)問題是redis并發(fā)太慢了,數(shù)據(jù)有2千萬條,而redis每秒并發(fā)才10萬級(jí)別,保存數(shù)據(jù)來不及。

  • dingfei 2019-05-14

    子進(jìn)程可以共享父進(jìn)程的數(shù)據(jù)。 workerman能做到動(dòng)態(tài)創(chuàng)建子進(jìn)程嗎?收到客戶端發(fā)來的消息就創(chuàng)建一個(gè)子進(jìn)程,執(zhí)行完就退出

  • walkor 2019-05-14

    不支持動(dòng)態(tài)創(chuàng)建子進(jìn)程。一個(gè)消息創(chuàng)建一個(gè)子進(jìn)程開銷非常大

  • dingfei 2019-05-16

    @1:感謝解答!

dignfei

共享內(nèi)存可以

  • 暫無評(píng)論
年代過于久遠(yuǎn),無法發(fā)表回答
??