.NET 中快速且紧凑的对象序列化

2023-11-24

我想使用对象序列化在网络之间进行通信Mono服务器和 Silverlight 客户端。 序列化的空间效率和速度非常重要,因为服务器将托管多个实时游戏。

我应该使用什么技术? BinaryFormatter 为本应用程序中不需要的序列化类(版本、区域性、类名、属性名等)添加了大量开销。

我该怎么做才能提高空间效率?


您可以使用协议缓冲区。我正在将所有序列化代码从具有压缩功能的 BinaryFormatter 更改为 Protocol Buffers,并获得了非常好的结果。它在时间和空间上都更加高效。

有两个 .NET 实现乔恩·斯基特 and 马克·格拉维尔.

Update:可以找到官方.NET实现here.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.NET 中快速且紧凑的对象序列化 的相关文章

随机推荐

  • 如何在 MS Code 合约中查找“屏蔽”断言

    我的 CodeContracts 错误列表中有以下消息级条目 CodeContracts 检查了 410 个断言 404 个正确 6 个被屏蔽 我不明白 什么是掩盖断言 如何找到它提到的 6 我是否应该关心他们 抱歉没有发布代码 我不知道如
  • 分隔字符串中的十六进制转义序列

    字符串常量可以吗 foo x01 bar 写成单个字符串文字 同时保留十六进制表示法 和 foo x01bar 转义序列似乎被解释为 x01ba因为我收到警告 十六进制转义序列超出范围 foo x01 bar is字符串文字 C 标准规定
  • 如何在asp.net中动态生成无序列表?

    我想生成一个无序列表 其中包含用于在数据库中显示图像的标签 我查看了项目符号列表 但它不适用于图像 我如何从数据库中的结果动态生成它 例如 如果我在数据库中有 6 个图像 那么我希望生成的列表必须如下所示 ul li img src Res
  • 根据Python中的一组索引将列表拆分为子列表

    我有一个类似于下面的列表 a b c d e f g h i j 我想用索引列表分隔 1 4 在这种情况下 它将是 a b c d e f g h i j As 1 a 1 4 b c 4 d e f g h i j 情况2 如果索引列表是
  • 如何使用 Vuelidate 验证密码?

    问候 我需要验证密码表格 除了必填字段外 必须至少有 1 个大写字母 至少 1 个小写字母 至少 1 个数字且至少包含以下字符之一 我正在使用这个包https vuelidate js org EDIT 或正则表达式 只需添加一个自定义函数
  • 使用 python 计算卷上剩余的跨平台空间

    我需要一种方法来在 Linux Windows 和 OS X 上使用 python 来确定磁盘卷上的剩余空间 我目前正在解析各种系统调用 df dir 的输出来完成此操作 有更好的方法吗 import ctypes import os im
  • 如何从浏览器控制台访问和测试 AngularJS 过滤器?

    给定一个测试过滤器 这样说 大写 过滤器将每个单词的第一个字母大写 return function input return input input replace W s g function txt return txt charAt
  • Visual Studio 构建失败:无法将 exe 文件从 obj\debug 复制到 bin\debug

    Update 可以找到重现此错误的示例项目在 Microsoft Connect 上 我还测试并验证了中给出的解决方案下面接受的答案致力于该示例项目 如果此解决方案不适合您 则您可能遇到了不同的问题 属于单独的问题 这是之前在 Stack
  • 打印时如何避免最后出现多余的空白页?

    我正在使用 CSS 属性 如果我使用page break after always 它之前会打印一个额外的空白页 如果我使用page break before always 之后会打印一个额外的空白页 我怎样才能避免这种情况
  • 使用 java 将电子邮件转换为其原始格式

    到目前为止我一直尝试创建一个类型的对象MimeMessage使用JavaMail api 然后获取其原始表示 但没有成功 我唯一能获得的是原始表示content电子邮件的内容 但不包括标题 主题或收件人 我对任何建议 任何 java 库感兴
  • 如何扩展代码点火器控制器类?

    在我的 CI system libraries 目录中 我有一个名为 DD Controller php 的新类 该文件如下所示
  • Python 中的“@”是什么意思?

    什么是 在 Python 中是什么意思 例子 login required etc 这是装饰器语法 函数定义可以由一个或多个装饰器表达式包装 定义函数时 在包含函数定义的范围内评估装饰器表达式 结果必须是可调用的 它是用函数对象作为唯一参数
  • 给定一个函数记录,以及该函数所作用的类型的数据记录,如何通用地应用该函数记录?

    标题稍微不准确 因为我的特定情况涉及更多 而不是第一个记录中的函数直接作用于第二个记录中的值 而是作用于值的列表 或其他可遍历的 我们可以假设 对特定字段的应用程序的结果返回的值与该字段中的类型相同 如果这能给我们带来什么好处的话 一个例子
  • 在启动画面期间加载所有场景

    我的移动 2D Unity 游戏中有多个场景 我想在启动屏幕中加载所有场景 以便场景传递流畅 我怎样才能做到这一点 如果我这样做 我是否需要更改 Application LoadScene 方法 我可以使用什么方法 我是否需要更改 Appl
  • TDM-GCC w64 脚本将 Windres 更改为 32 位?

    尝试让 TDM GCC 4 7 1 在 XP SP3 上运行 我现在只需要一个 c 32 位版本 看来 Windres 的格式不正确 我的 rc 文件构建失败 x86 64 w64 mingw32 g exe Wall m32 s D M
  • 在 WPF 文本框中使用箭头键 (C#)

    有没有办法捕获 WPF TextBox 中的向上 向下箭头键 System Windows Controls Textbox 并允许他们更改文本 我读过有关覆盖ProcessCmdKeyWindows 窗体文本框的方法 System Win
  • 使用 Django South 重置迁移历史记录的推荐方法是什么?

    我已经使用 South 0 7 和 Django 1 1 2 积累了相当多的迁移 这些迁移开始在我的单元测试中消耗相当多的时间 我想重置基线并开始一组新的迁移 我已经审查了南方文档 完成了通常的 Google Stackoverflow 搜
  • Git 预提交挂钩在文件中查找文本

    我正在编写一个 git 预提交挂钩来检查任何暂存文件是否包含不允许的文本 如果是这种情况则中止 不是这方面的专家 到目前为止我已经得到了这个 git diff cached name status while read x file do
  • JMeter 和带有 SSL 的 HTTP 代理服务器的问题

    我们正在使用 JMeter 2 4 并尝试使用 HTTP 代理服务器来捕获测试计划 尝试 HTTPS 欺骗 未勾选 我们在 JMeter 日志中得到的错误是 2010 08 02 14 46 02 错误 jmeter protocol ht
  • .NET 中快速且紧凑的对象序列化

    我想使用对象序列化在网络之间进行通信Mono服务器和 Silverlight 客户端 序列化的空间效率和速度非常重要 因为服务器将托管多个实时游戏 我应该使用什么技术 BinaryFormatter 为本应用程序中不需要的序列化类 版本 区