<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>序列化 on 白山羊</title><link>https://weissgoat.pages.dev/categories/%E5%BA%8F%E5%88%97%E5%8C%96/</link><description>Recent content in 序列化 on 白山羊</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 28 Feb 2026 15:48:39 +0800</lastBuildDate><atom:link href="https://weissgoat.pages.dev/categories/%E5%BA%8F%E5%88%97%E5%8C%96/index.xml" rel="self" type="application/rss+xml"/><item><title>Flatbuffers</title><link>https://weissgoat.pages.dev/p/flatbuffers/</link><pubDate>Sat, 28 Feb 2026 15:48:39 +0800</pubDate><guid>https://weissgoat.pages.dev/p/flatbuffers/</guid><description>&lt;p&gt;FlatBuffers 也是 Google 出的序列化库，但理念和应用场景和Protobuf不同。它最初是为游戏开发和其他对性能（CPU 和内存）要求极高的应用而设计的。&lt;/p&gt;
&lt;p&gt;在探讨高性能网络通信和数据存储时，我们经常会遇到各种序列化协议（如 JSON、Protobuf）。但在对延迟要求极其苛刻的场景下，这些协议的“解析耗时”和“内存分配”往往会成为瓶颈。&lt;/p&gt;</description></item><item><title>Sproto</title><link>https://weissgoat.pages.dev/p/sproto/</link><pubDate>Fri, 27 Feb 2026 18:14:15 +0800</pubDate><guid>https://weissgoat.pages.dev/p/sproto/</guid><description>&lt;p&gt;Sproto 是一个高效的 C 序列化库，专注于 lua 绑定。类似 Protobuf，但实际跑起来，在 Lua 环境下它的速度往往要快得多。&lt;/p&gt;
&lt;h2 id="为什么用-sproto"&gt;为什么用 Sproto？
&lt;/h2&gt;&lt;p&gt;序列化方式业内标杆通常是 Protobuf。那为什么还要造 Sproto 这个“轮子”呢？我觉得可以归结为以下三个原因：&lt;/p&gt;</description></item><item><title>Protocol Buffers</title><link>https://weissgoat.pages.dev/p/protocol-buffers/</link><pubDate>Fri, 27 Feb 2026 16:30:17 +0800</pubDate><guid>https://weissgoat.pages.dev/p/protocol-buffers/</guid><description>&lt;p&gt;Protocol Buffers。作为 Google 开源的一款轻便高效的结构化数据存储格式，它在 RPC 数据交换和高性能数据存储领域几乎是“标配”。&lt;/p&gt;
&lt;h2 id="核心优势"&gt;核心优势
&lt;/h2&gt;&lt;p&gt;在接触 Protobuf 之前，最常用的序列化格式莫过于 JSON 和 XML。但在高并发、对带宽和延迟极其敏感的场景（例如微服务内部的 RPC 调用、高频的网络状态同步）下，纯文本格式的瓶颈就会显现。Protobuf 的优势，主要归功于以下三点：&lt;/p&gt;</description></item></channel></rss>