[發明專利]一種內存共享方法和相關裝置在審
| 申請號: | 202310831321.5 | 申請日: | 2023-07-07 |
| 公開(公告)號: | CN116560878A | 公開(公告)日: | 2023-08-08 |
| 發明(設計)人: | 張宇昂 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;G06F9/50 |
| 代理公司: | 深圳市深佳知識產權代理事務所(普通合伙) 44285 | 代理人: | 王仲凱 |
| 地址: | 518064 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 內存 共享 方法 相關 裝置 | ||
本申請公開了一種內存共享方法和相關裝置,在基于第一編程語言的運行環境中,可以通過編程接口加載基于第二編程語言的可執行文件,第二編程語言為相比于第一編程語言更底層的編程語言,通過基于第二編程語言的可執行文件,可以為目標內存標識確定對應的共享內存空間,將運行環境的內存中的待共享數據復制到共享內存空間,由于共享內存空間用于供運行環境中的多個進程訪問,因此多個進程可以通過訪問共享內存空間中的同一數據從而實現數據的共享,提高進程間數據傳輸效率,利于提高應用性能。此外,還可以將目標內存標識和共享內存空間的內存區域信息存儲到全局變量中,即使可執行文件執行完畢也不會影響多個進程對共享內存空間中的數據的訪問。
技術領域
本申請涉及數據處理領域,特別是涉及一種內存共享方法和相關裝置。
背景技術
前端開發者可以基于編程語言在運行環境中開發服務端應用,例如Node.js是一種基于Chrome?V8引擎的JavaScript運行環境,可以用于開發高性能、可伸縮的網絡應用程序,其編程語言可以為JavaScript語言。然而,在運行環境中存在需要大量傳遞數據的場景,應用性能較低。
發明內容
為了解決上述技術問題,本申請提供了一種內存共享方法和相關裝置,在基于第一編程語言的運行環境中,可以通過編程接口加載基于第二編程語言的可執行文件,以利用第二編程語言實現內存共享,提高進程間通信效率,利于提高應用性能。
本申請實施例公開了如下技術方案:
一方面,本申請提供一種內存共享方法,所述方法包括:
在基于第一編程語言的運行環境中,通過編程接口加載基于第二編程語言的可執行文件,所述第二編程語言為相比于所述第一編程語言更底層的編程語言;
通過所述可執行文件,為目標內存標識確定對應的共享內存空間,將所述運行環境的內存中的待共享數據復制到所述共享內存空間,將所述目標內存標識和所述共享內存空間的內存區域信息存儲到全局變量;所述共享內存空間用于供所述運行環境中的多個進程訪問。
另一方面,本申請提供一種內存共享裝置,所述裝置包括:
文件加載單元,用于在基于第一編程語言的運行環境中,通過編程接口加載基于第二編程語言的可執行文件,所述第二編程語言為相比于所述第一編程語言更底層的編程語言;
內存確定單元,用于通過所述可執行文件,為目標內存標識確定對應的共享內存空間;所述共享內存空間用于供所述運行環境中的多個進程訪問;
數據復制單元,用于將所述運行環境的內存中的待共享數據復制到所述共享內存空間;
內存信息存儲單元,用于將所述目標內存標識和所述共享內存空間的內存區域信息存儲到全局變量。
可選的,所述數據復制單元,包括:
數據信息獲取單元,用于獲取所述待共享數據在所述運行環境的內存中的棧中的字節起始地址,以及所述待共享數據的字節長度;
復制子單元,用于根據所述字節起始地址和所述字節長度,將所述待共享數據復制到所述共享內存空間。
可選的,若所述待共享數據的數據類型為引用類型,所述數據信息獲取單元,包括:
字節長度獲取單元,用于確定所述運行環境的內存中的堆中的待共享數據的字節長度;
空間分配單元,用于根據所述字節長度,在所述運行環境中的內存中的棧中為所述待共享數據分配中間存儲空間,并獲取所述中間存儲空間的字符串指針;
寫入單元,用于將所述待共享數據寫入所述中間存儲空間;
起始地址確定單元,用于利用所述中間存儲空間的字符串指針,確定所述待共享數據在所述中間存儲空間中的字節起始地址。
可選的,所述字節長度獲取單元具體用于:
根據所述運行環境的內存中的堆中的待共享數據的各個屬性值的字節長度,確定所述待共享數據的字節長度。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202310831321.5/2.html,轉載請聲明來源鉆瓜專利網。





