我正在尝试开发一个包含大量用户数据库的社交网络android应用程序。我对Android应用程序开发非常陌生,并试图理解应用程序开发背后的概念。我正在使用以下技术:
1) MYSQL + PHP () 2) Android (RESTful )
在应用程序中,我必须运行一些复杂的算法来对用户进行排序,从存储在云服务器中的数据库中收集来自不同表的数据。
我的问题是“在哪里运行这个算法?”我是否应该用PHP编写代码,使算法在服务器端运行,然后将这些数据发送给客户端(或)是否应该使用从服务器收集的数据用JAVA (Android )编写代码。
在这两种情况下,我的应用程序的性能会有什么不同?
编辑:谢谢你的回复。
我对异步任务和多线程有了一些想法。
我对此产生了怀疑,因为排名对我所有的用户来说都是常见的,这是有区别的。如果我将raking算法放在服务器端,即使结果对所有用户都一样,相同的算法必须运行几次(例如,如果有10000个用户,相同的算法在服务器端运行10000次)。但如果我真的把客户放在一边,我可能会克服这一切的。但需要专家解决这个问题。
发布于 2017-01-03 09:34:09
这个问题可能有些基于意见,但我认为有一些设计规则可以作为指导方针:
发布于 2017-01-03 09:24:07
总是建议在服务器端运行算法,因为将业务逻辑放入客户端应用程序会对应用程序的安全性造成威胁。另一方面,它降低了应用程序的性能,由于长期运行的任务,不能接受良好的用户体验,如果您以后创建了多个平台,如web、iOS等,您必须再次完全浪费相同的逻辑,对吗?放到服务器端的算法中,调用Rest。
发布于 2017-01-03 09:35:55
这取决于您所说的Complex是什么意思。
如果复杂,意味着大量的数学和计算等等,而不是大量的数据。
我可能会在客户身上这么做。将渴望计算的进程移到客户端可以极大地提高您的总体响应能力。您正在有效地使用您的客户端作为一个计算引擎,这通常是一件好事。
如果复杂,意味着大量的数据被分析,很少涉及实际的数学。
您应该将大量的数据移动保持在最小的距离。尽可能接近您的DB服务器。如果可以的话,将其中的一些放在数据库本身中。
https://stackoverflow.com/questions/41439889
复制相似问题