压缩 XML 指标。

2024-02-21

我有一个客户端服务器应用程序,它通过 TCP/IP 将 XML 从客户端发送到服务器,然后广播到其他客户端。我如何知道 XML 的最小大小可以通过压缩 XML 而不是通过常规流发送来保证性能改进。

有什么好的指标或例子吗?


Xml 通常压缩得很好,因为它往往有很多重复。

另一种选择是交换为二进制格式; BinaryFormatter 或 NetDataContractSerializer 是简单的选项,但与 xml 相比,两者都非常不兼容(例如与 java)。

另一种选择是可移植的二进制格式,例如谷歌的“协议缓冲区”。我维护了一个 .NET/C# 版本,称为protobuf网络 http://code.google.com/p/protobuf-net/。它被设计为与常规 .NET 方法(例如 XmlSerializer / DataContractSerializer)并行兼容,但比 xml 小得多,并且序列化和反序列化所需的处理(CPU 等)显着减少。

这一页 http://code.google.com/p/protobuf-net/wiki/Performance显示 XmlSerializer、DataContractSerializer 和 protobuf-net 的一些数字;我thought它包括有/没有压缩的统计数据,但它们似乎已经消失了......

[更新] 我应该说 - QuickStart 项目中有一个 TCP/IP 示例。

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

压缩 XML 指标。 的相关文章

随机推荐

  • 基本 Node.js 项目的“属性‘程序’不存在”

    我创建了简单的node js应用程序 源代码来自这里https azure microsoft com en us blog visual studio code and azure app service a perfect fit ht
  • 明显的 BufferBlock.Post/Receive/ReceiveAsync 竞赛/bug

    交叉发布到http social msdn microsoft com Forums en US tpldataflow thread 89b3f71d 3777 4fad 9c11 50d8dc81a4a9 http social msd
  • 如何使 Onboarding 与 iOS13 中的 Scene Delegate 配合使用?

    我正在尝试在 SceneDelegate 中设置我的入门屏幕 当我运行下面的代码时 它可以编译 但只是进入黑屏 其中有很多针对 AppDelegate 的精彩入门教程 但针对 iOS13 的新 SceneDelegate 的入门教程却很少
  • 如何查看 /bin/sh 指向的内容

    我正在阅读 bin sh 和 bin bash 之间的差异 并遇到了这个有趣的问题 答案 here https stackoverflow com questions 5725296 difference between sh and ba
  • PHP:如果!空&空

    所以我有这个表格 有2个字段 Youtube 和 链接 我想做的如果已经填写了YouTube 应该这样做 if empty youtube if pos false echo Du skal indtaste youtube et URL
  • 目前的iphone版本是否支持彩信? [复制]

    这个问题在这里已经有答案了 可能的重复 是否可以使用 iPhone SDK 发送图片消息 https stackoverflow com questions 5150271 is it possible to send a picture
  • 实体框架 ObjectContext 分享 - 优缺点

    在我的项目中 我使用实体框架 4 0 作为 ORM 将数据保存在 SQL Server 中 我的项目是应用程序的功能区 主窗体中有网格视图和导航树 其顶部有功能区面板 我的应用程序基本上是一个 CRUD UI 几乎没有业务逻辑 第一次使用
  • 位域元素的默认值

    在 C 11 中可以做 struct S int i 42 如果忘记初始化成员i它 默认初始化为 42 我刚刚尝试过 位域为 struct S int i 42 5 我正在得到 错误 预期为 在 标记之前 位域成员是否存在此功能 如果存在
  • JNI 的用处[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 获取文本字段中最常用的 10 个单词

    我有一个包含数千个文档的索引 每个文档都有一个全文字段 我想搜索所有这些字段并获取最常出现的 10 个最常见的单词 如果可能的话 我还想要一种在 Kibana 上可视化它的方法 实现此目的的最常见方法是使用keyword datatype
  • Drupal CCK 的复选框

    我是 Drupal 的新人 到目前为止很喜欢 我正在创建 CCK 自定义内容类型 我需要以复选框格式制作便利设施列表 所以我做了 文件类型 Text 小部件类型 复选框 单选按钮 和允许值列表 onsite dining 现场用餐 Meet
  • 如何在启动时运行命令?

    我试图弄清楚如何在启动时运行命令 就像我将其输入控制台一样 我在 Raspberry Pi 上使用 Rasbian 但我认为这个问题对于 Debian 来说通常是相同的 我尝试运行的命令是 sudo screen mono server e
  • Rails 6 无法连接到 AWS Elastic Beanstalk 预置的 RDS。 Unix 域套接字“/var/run/postgresql/.s.PGSQL.5432”

    我在尝试向 Elastic Beanstalk 启动示例 Rails 6 应用程序时遇到了非常困难的情况 对于上下文 我遵循这些说明 将 RDS 添加到 Ruby 应用程序 https docs aws amazon com elastic
  • Python 中的线程队列挂起

    我正在尝试通过队列使解析器成为多线程 它似乎有效 但我的队列挂起 如果有人能告诉我如何解决这个问题 我将不胜感激 因为我很少编写多线程代码 此代码从 Q 中读取 from silk import import json import dat
  • 当父视图的任何子视图重绘时,如何触发父视图的重绘?

    背景 我写了一个基于 Android 的自定义视图LinearLayout我称之为ReflectingLayout 这个想法相当简单 在声明的任何子视图下面渲染反射效果ReflectingLayout e g 我通过覆盖来实现这一目标dis
  • C# NHibernate 简单问题

    我在用着NHibernate驱动存储库 Fluent映射并尝试使用Linq to NHibernate 但对于像这样的一些简单查询 Retrieve
  • 解析 HTML 内容时阻止 etree 解析 HTML 实体

    有没有办法阻止etree在解析HTML内容时解析HTML实体 html etree HTML amp html find body text 这给了我 但我想得到 本身 您始终可以对数据进行预处理 后处理 在输入 HTML 解析器之前将 替
  • 如何设置 10 点到 19 点每两小时执行一次 Cron 作业

    1 个月前我对此有一个疑问 那是1个小时的间隔 我得到了确切的答案 以下是旧问题的链接 如何设置从上午 9 00 到下午 6 00 周一至周五 每隔一小时执行一次 Cron 作业 https stackoverflow com questi
  • Python - Tkinter 文本大小未调整大小

    我正在尝试使用 Tkinter 制作一个可以调整大小的窗口 并且效果很好 但我希望字体大小也能按比例缩放 输入框的大小完美调整 但文本大小保持不变 我也可以更改输入文字大小吗 我该怎么做呢 先感谢您 这是到目前为止我的代码片段 defini
  • 压缩 XML 指标。

    我有一个客户端服务器应用程序 它通过 TCP IP 将 XML 从客户端发送到服务器 然后广播到其他客户端 我如何知道 XML 的最小大小可以通过压缩 XML 而不是通过常规流发送来保证性能改进 有什么好的指标或例子吗 Xml 通常压缩得很