Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 移动网络性能:将数据从Web服务器传输到移动电话最有效的数据类型是什么?_Android_Ios_Performance_Mobile_Client Server - Fatal编程技术网

Android 移动网络性能:将数据从Web服务器传输到移动电话最有效的数据类型是什么?

Android 移动网络性能:将数据从Web服务器传输到移动电话最有效的数据类型是什么?,android,ios,performance,mobile,client-server,Android,Ios,Performance,Mobile,Client Server,Q:在Web服务器(/other?)和移动电话(即ios/android/other)之间传输数据时,使用哪种数据类型最有效/最快 JSON XML HTML Q:应该使用哪种服务器端技术 php+mysql Q:应该使用哪种API 休息 RPC 有什么想法吗 A1.二进制文件 你看过吗?这是一个具有跨平台功能的高效二进制格式化程序(java、c#、python、objective c、PhP。甚至还有一个JScript实现,但我不相信!) 您看过AMQP之类的消息传递框架吗?我已经

Q:在Web服务器(/other?)和移动电话(即ios/android/other)之间传输数据时,使用哪种数据类型最有效/最快

  • JSON
  • XML
  • HTML
Q:应该使用哪种服务器端技术

  • php+mysql
Q:应该使用哪种API

  • 休息
  • RPC
有什么想法吗

A1.二进制文件

你看过吗?这是一个具有跨平台功能的高效二进制格式化程序(java、c#、python、objective c、PhP。甚至还有一个JScript实现,但我不相信!)

您看过AMQP之类的消息传递框架吗?我已经成功地实现了一个跨平台的二进制消息传递系统,用作消息路由器、二进制序列化程序以及C#和Java客户端。它的速度非常快,可以在0.5毫秒内执行从客户端到服务器以及从客户端到服务器的往返请求/响应(包括序列化/反序列化,不包括网络时间)

消息传递堆栈变为:

移动>RabbitMQ客户端>Google Protobuffers>{internet}>RabbitMQ服务器>Google Protobuffers>Web服务器

JSON是下一个速度最快的序列化程序,但在速度和有效利用带宽方面,没有任何东西可以与二进制程序相比

A2。为了提高性能,Oracle将处理最多的数据,SQL Server和MySql将提供非常好的结果,尽管这取决于您打算做什么

这还取决于数据的存储方式。您正在存储关系数据吗?然后使用关系数据库。您正在存储时间序列数据吗?然后使用按列排序的数据库,甚至是平面文件。PyTables是基于python的以文件为中心的数据库的一个很好的例子,它非常适合存储科学数据集和时间序列

这个问题的答案实际上是“这取决于”——取决于你想做什么。我也会考虑开发一个你知道的服务器端技术,而不是根据数字选择一个,因为它们都非常相似。p> A3.未知,不是我的专业领域


致以最诚挚的问候,

首先,你说的高效是什么意思?关于移动网络性能,我假设您正在讨论从发送web请求到接收响应的最低延迟

如果我们谈论的是少量数据(Andrew博士说:“这取决于”。这取决于您正在开发哪种应用程序。请给我们更多解释!

A1

这不仅仅是关于传输,而是关于如何在客户端处理它,例如,是否使用HTML客户端检索它

延迟在移动设备上是一个真正的杀手,但内存也是一个大问题——我会选择客户端最容易处理的格式,可能是JSON(p),但我想更详细地查看数据/应用程序,以提出真正的建议

如果你正在编写一个本地应用程序,那么当然值得考虑使用ProtoBuffers或Thrift之类的二进制协议,但我会首先尝试使用JSON或其他文本格式制作一个原型

A2

可能是你最了解的(在合理范围内)

A3

我会去休息,因为会收到一些请求


RPC建议请求将是POST,一些浏览器将AJAX POST拆分为两个TCP数据包,只有在第一个TCP数据包被确认时才会发送第二个TCP数据包(在高延迟环境中很糟糕).

我们谈论的数据量有多大?在什么方面效率高?我考虑的是速度。当用户启动请求,直到它返回,然后解析到用户应该看到的任何内容。数据量将少于正常网页,因为渲染将由手机完成(TableView等仅显示返回的数据)您好Rasmus,您的应用程序将要做什么?我曾参与过交易应用程序的工作,这些应用程序要求客户机/服务器之间具有极高的消息传递吞吐量。最快的组合是RabbitMQ/Protobuffers,它允许跨平台二进制消息传递和往返处理时间Hi Andrew,iam为dictionari编写应用程序es-用户登录,搜索一个单词(以单词补全的方式;他们键入并为每个按下的字母更新表格列表)。当用户在列表中选择一个单词时,他们会看到一篇大小可能有很大差异的文章。这些文章当前以HTML格式显示,然后显示在Web视图中。我希望加快从登录、搜索和查看文章的整个过程。登录/搜索和其他任务以XML响应。自动完成听起来像是me喜欢瓶颈。想想谷歌如何响应自动完成搜索请求。他们在内部使用protobuffers进行序列化,在外部很可能使用JSON而不是二进制。他们使用异步web服务提供数据。如果你将自动完成结果限制在10,那么你将获得巨大的性能提升。例如,用户pes在“Fa..”中会得到一个列表,其中包括“Fast”、“Fancy”、“Fan”等,最多返回10个结果,而不是“字典匹配Fa中的所有匹配”。此外,他们不会返回任何建议,除非您至少有2个charsQ2/3。这当然取决于目标应用程序,因为Q1二进制文件和JSON是最快和最有效的serializers@RasmusStyrk寻找。它的快速和完美的自动完成!我正在阅读有关谷歌protobuffers/rabbitmq。看起来相互测试。我会打赌ter请尽快查看并试用。是的,异步消息传递(如RabbitMQ作为客户机/服务器的AMQP)非常轻量级、快速,并且可以处理高数据。类似的技术在