簡體   English   中英

使用yaml-cpp解析YAML期間的內存消耗

[英]Memory consumption during parsing of YAML with yaml-cpp

我正在為內存有限的嵌入式系統開發Qt應用程序。 我需要接收幾兆字節的JSON數據並盡可能快地解析它,而又不占用太多內存。

我在考慮使用流:

JSON源(HTTP客戶端)---> ZIP解壓縮器---> YAML解析器---->對象映射到數據庫

數據從網絡到達的速度比我解析的速度要慢得多。

  1. yaml-cpp需要多少內存來解析1MB數據?
  2. 我希望在創建映射到數據庫的對象后立即釋放來自解壓縮器的原始數據以及YAML解析器用於該數據的內部內存。 可能嗎?
  3. yaml-cpp是否支持異步解析? 因此,一旦解析了JSON對象,我就可以將其存儲在數據庫中,而無需等待HTTP源中的全部內容。

由於您有內存限制,並且您的數據已經在JSON中,因此應使用低內存JSON解析器,而不是YAML解析器。 嘗試jsoncpp-盡管我不確定它們對流的支持是什么(因為JSON沒有文檔的概念)。

yaml-cpp 為流設計的,因此如果有要解析的文檔但流仍處於打開狀態,它將不會阻塞。 但是,yaml-cpp中存在一個突出的問題 ,即一次讀取多個文檔,因此它實際上並不是為內存使用量極低而設計的。

至於解析1 MB數據需要多少內存,它可能約為3 MB(原始輸入流,再加上解析后的流,再加上生成的數據結構),但是它可能會因種類不同而有很大差異。您正在解析的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM