2017-08-28 32 views
0

非常簡單的問題,字符串佔用了多少數據(字節)?他們每字符佔用1個字節嗎?字符串數據類型佔用了多少數據?

我試圖尋找它,但WS學校不說......

我想知道這個降低我的web應用程序的帶寬。

另外,對於任何知道的人來說,使用socket.emit()時socket.io會自動json stringify嗎?

+0

作爲一方認爲:如果你擔心帶寬,它可能是值得尋找一個更精簡的JSON替代方案[MessagePack](http://msgpack.org)。 – abagshaw

+0

我使用socket.io,我不認爲它足夠靈活,可以使用除已使用的其他字符串化方法(JSON) – Canatron

+1

我相信你可以找到使其工作的方法。一個簡單的搜索引出這個[基於MessagePack的socket.io解析器](https://github.com/darrachequesne/socket.io-msgpack-parser)。 – abagshaw

回答

1

字符串是一個字符數組。所以,現在它將大致佔用sizeof(char) * noOfCharacters忽略String類中的其他字段。字符可以是1字節或2字節,具體取決於系統,代表的字符類型 - 統一碼等。 但是,從您的問題來看,您更關心的是通過網絡傳輸的數據。請注意,數據始終以字節(byte[])進行交換,因此字符串將首先轉換爲byte []表示形式,然後移植完畢。 爲了限制帶寬使用,你可以啓用壓縮,選擇可互操作的序列化技術(protobuf,smile,fastinfoset等)

相關問題