Tôi biết rằng câu hỏi này hơi lạc hậu vào thời điểm này ... Tôi nghĩ rằng rất quan trọng để đề cập rằng nó phụ thuộc vào môi trường máy khách / máy chủ của bạn trông như thế nào.
Nếu bạn truyền byte nhiều lần mà không kiểm tra, chẳng hạn như với hệ thống hàng đợi tin nhắn hoặc truyền các mục nhật ký vào đĩa, thì bạn cũng có thể thích mã hóa nhị phân để nhấn mạnh kích thước nhỏ gọn. Mặt khác, nó là một vấn đề theo từng trường hợp với các môi trường khác nhau.
Một số môi trường có thể có tuần tự hóa và giải tuần tự hóa rất nhanh đến / từ trình tin của tệp packpack / protobuf, một số khác thì không nhiều. Nói chung, ngôn ngữ / môi trường càng thấp thì tuần tự nhị phân tốt hơn sẽ hoạt động. Trong các ngôn ngữ cấp cao hơn (node.js, .Net, JVM), bạn sẽ thường thấy rằng tuần tự hóa JSON thực sự nhanh hơn. Khi đó, câu hỏi đặt ra là mạng của bạn bị hạn chế nhiều hay ít hơn bộ nhớ / cpu của bạn?
Liên quan đến bộ đệm thông tin và bộ đệm giao thức so với bộ đệm giao thức ... Trình tin gói là ít byte nhất của nhóm, bộ đệm giao thức là như nhau. BSON định nghĩa các loại bản địa rộng hơn so với hai loại kia và có thể phù hợp hơn với chế độ đối tượng của bạn, nhưng điều này làm cho nó dài dòng hơn. Bộ đệm giao thức có lợi thế là được thiết kế để truyền phát ... điều này làm cho nó có định dạng tự nhiên hơn cho định dạng chuyển / lưu trữ nhị phân.
Cá nhân, tôi sẽ nghiêng về tính minh bạch mà JSON cung cấp trực tiếp, trừ khi có nhu cầu rõ ràng về lưu lượng truy cập nhẹ hơn. Qua HTTP với dữ liệu được nén, sự khác biệt về chi phí mạng thậm chí còn ít hơn một vấn đề giữa các định dạng.