iphone - 通过 HTTP 发送 10,000 个 double 的最佳方式

标签 iphone google-app-engine ios ios4 double

我有一个收集 10,000 个 double 的客户端应用程序 (iPhone)。我想通过 HTTP 将此双数组发送到 appengine 服务器(java)。我正在寻找最好的方法来做到这一点。

最佳可以定义为易于编程和表示紧凑性的某种组合,因为数据量可能非常高。

我目前的想法是将整个 double 数组转换为字符串表示形式并将其作为 POST 参数发送,在服务器上解析字符串并转换回 double 数组。虽然看起来效率低下...

谢谢!

最佳答案

我认为您回答了您自己的问题 :) 要提防的大事是设备和服务器上的浮点表示之间的差异。如今,它们都将是 little-endian,(主要)符合 IEEE-754。但是,实现中仍然可能存在一些细微的差异,例如处理非正规和无穷大,但您可能会忽略它们而侥幸逃脱。我似乎记得 NEON 中的一些边缘案例(用于 iPhone 的 Cortex A-8)的处理方式与 x86 不同。

如果您确实以字符串形式发送,则最终会在十进制和二进制之间进行转换,并且可能会失去准确性。不过,这并不是那么低效 - 它只有 10,000 个数字。除非您期望数以千计的设备不间断地在您的服务器上传输这些数据。

如果您想在电汇和设备端提高效率,那么一种方法是以原始二进制形式发送 double 。在服务器上,将它们重新解析为 double 数 (Double.longBitsToDouble)。当你抓取数据时,确保你得到正确的字节序(当它出错时会很明显)。

关于iphone - 通过 HTTP 发送 10,000 个 double 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5054375/

相关文章:

ios - 我还可以为 iPhone 4s 申请吗?

java - GAE - 找不到类 : Caused by: java. lang.ClassNotFoundExceptionAppIdentityCredential$AppEngineCredentialWrapper

google-app-engine - 降序 __key__ 索引是否需要额外的写入操作?

ios - 使用图像上传 Swift 动态调整 UICollectionViewCell 的大小

iphone - 如何防止iPhone应用程序在非视网膜设备上运行?

iphone - 写文件时如何让进度条显示剩余时间?

iphone - 对齐图标 TabBar

ios - 使用 Sirikit xcode 8 的 RideBooking 概念

google-app-engine - 具有运行时 go111 url 调度问题的 dev_appserver.py

javascript - 项目中缺少main.jsbundle、Foundation和Security,导致报错