簡體   English   中英

通過套接字將數據從C ++程序移植到Java程序的輸入是否比通過服務器上的原始json或xml文件更快?

[英]Is it faster to port data from a C++ program to a Java program's input via sockets than via a raw json or xml file on the server?

就速度/性能而言,最好的處理方式是什么?

諸如“ Apache Thrift”之類的東西從哪里來?有什么好處?

請添加一些很好的資源,我可以用來了解任何建議!

謝謝大家

假設您的意思是兩個進程已經在運行,那么它將通過套接字進行。

從一個進程將文件寫入磁盤,然后從另一個進程讀取文件,將會導致磁盤讀寫性能的下降(當然,無論采用哪種方法,都可以阻止讀者在文件寫入完成之前訪問文件; (在磁盤上鎖定或原子重命名)。

即使忽略這一點,您的本地主機接口的傳輸速率也將比磁盤控制器更快,但其中可能有一個例外,其中包含15k RPM驅動器的10Gb光纖通道RAID陣列。

試試看。 找不到其他方法。

使用套接字或文件系統應該相對較快,因為這兩種方法都依賴於一些非常相似的系統調用。

請始終注意,此通信涉及以下步驟:

  1. 將數據編碼為字節流(JSON,XML,YAML,X.509 DER,Java序列化)
  2. 傳輸此字節流(TCP套接字,UNIX套接字,文件系統,ramdisk,管道)
  3. 將字節流解碼為數據(與步驟1相同)

步驟1和步驟2是完全獨立的,因此在進行基准測試時要考慮到這一點。

暫無
暫無

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

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