我现在正在为网站制作移动客户端。我的应用程序和服务器之间的信息交换是 JSON 格式的(在服务器上搜索用户和数据、发送消息、对话线程等)但是所有这些功能都运行得太慢了。我单击“发送”按钮,然后等待几秒钟,然后发送消息,搜索,授权等也是如此。所以我有这样一个问题:
1. 为什么会有这么大的性能开销?
2. 可能是服务器端的问题,还是 JSON 解析器的问题,或者可能是其他问题?
3. 我该如何修复/优化这个?所有解决方案、建议等都会有所帮助!
我现在正在为网站制作移动客户端。我的应用程序和服务器之间的信息交换是 JSON 格式的(在服务器上搜索用户和数据、发送消息、对话线程等)但是所有这些功能都运行得太慢了。我单击“发送”按钮,然后等待几秒钟,然后发送消息,搜索,授权等也是如此。所以我有这样一个问题:
1. 为什么会有这么大的性能开销?
2. 可能是服务器端的问题,还是 JSON 解析器的问题,或者可能是其他问题?
3. 我该如何修复/优化这个?所有解决方案、建议等都会有所帮助!
我可以为您节省一些时间 - 它与 JSON 无关。它与您的应用程序通常如何处理请求有关。它显然需要在服务器上进行优化。
编辑:
我想这也可能是您在手机上遇到了高延迟,但同样,这与您的应用程序无关。
使用常规浏览器和 chrome 开发工具(在网络选项卡中)对其进行调试 - 您会看到即使在桌面上请求也需要很长时间,此时您必须开始在服务器端代码中寻找以查看是什么让它变慢(提示:未优化的数据库查询是一个很大的瓶颈......但话又说回来,蹩脚的硬件也是如此)。
抱歉,我无法提供更多帮助,但没有看到服务器的整个设置和运行缓慢的代码(不是客户端请求,而是服务器代码),这是我能做的最好的事情。
祝你好运。
我会使用 Xcode 来调试应用程序,看看大部分时间是花在从服务器加载数据还是在接收到数据后解析 JSON。
如果是第一次,请尝试通过同一无线连接从 PC 加载数据,看看它是否也很慢。如果是这样,显然您的服务器端代码需要优化。
如果是第二个并且解析速度很慢,您可能需要考虑使用JSONKit而不是原生 JSON 解析器,因为测试表明它更快。您可能还想查看 JSON 的结构。
然而,我注意到的一件事是我的 iPad 上的连接速度比其他机器上的慢。在将我在模拟器中开发的应用程序与在同一网络上的设备上进行比较以及进行速度测试时,我注意到了这一点。至于为什么会发生这种情况,我不确定——也许是 iOS 中某种形式的额外开销。