- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在说任何事情之前我必须说,尽管我是一名经验丰富的 Java 程序员,但我对 C/C++ 编程还是比较陌生。
我必须以一种可以从不同操作系统和平台访问的格式保存二进制文件。它应该非常有效,因为我必须处理大量数据。我应该为此调查哪些方法?主要优点和缺点是什么?
最佳答案
Network order (big-endian) 是某种事实上的标准。但是,如果您的程序将主要用于 x86 (这是小端),出于性能原因,您可能希望坚持使用该协议(protocol)(该协议(protocol)仍可在大端机器上使用,但它们会对性能产生影响)。
此外htonl (转换 32 位值),还有 htons(16 位)和 bswap_64(64 位的非标准)。
如果您想要二进制格式,但又想抽象出一些细节以简化序列化和反序列化,请考虑 Protocol Buffers或 Thrift . Protocol Buffers 是可更新的(您可以在不破坏现有代码的情况下向模式添加可选或重复(0 个或更多)字段);不确定 Thrift。
但是,在过早优化之前,请考虑解析是否真的是瓶颈。如果读取文件的每一行都需要数据库查询或计算,您可以使用更具可读性的格式,而不会对性能产生任何明显影响。
关于c++ - 独立于平台的表示中涉及哪些方法和权衡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11107162/
我正在寻找想法/方向来解决我遇到的问题: 上下文:我有 1000 天的每小时时间序列数据(即每天 24 小时的一行特征)。对于每一个小时,我都试图预测一个目标值。现在,我更关心一天中某些时间的准确性(
我正在阅读有关 Scala 的 actor 的信息,所以假设我们有类似的内容: object Worker extends Actor { def act() { while(true)
在 Yii2 中,使用 Html::activeDropDownList,我可以以如下形式提交数据: 'multiple', 'class' => 'multiselect', ]
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。 关闭
我正在研究潜在的免费/付费应用程序的硬件/软件要求(最终目标是移动 Java 应用程序)。 应用程序将从这个简单的目标开始:给定数据库中相关单词的列表,以便能够对单个字符串输入进行单词补全。 换句话说
我是一名优秀的程序员,十分优秀!