【发布时间】:2017-05-17 07:57:22
【问题描述】:
我正在尝试开发一个包含大量用户数据库的社交网络 android 应用程序。我对 Android 应用程序开发非常陌生,并试图了解应用程序开发背后的概念。 我正在使用以下技术:
1) MYSQL + PHP(RESTful Web 服务) 2) Android Studio (Java)
在应用程序中,我必须运行一些复杂的算法来对从存储在云服务器中的数据库的不同表中收集数据的用户进行排名。
我的问题是“在哪里运行这个算法?”。 我是否应该在 PHP 中编写代码以使算法在服务器端运行,然后将此数据发送到客户端 (要么) 我应该使用从服务器收集的数据在 JAVA (Android Studio) 中编写代码吗?
我的应用在这两种情况下的性能有何不同?
编辑:感谢您的所有回复。
我对异步任务和多线程有想法。
我产生了这个疑问,因为排名对我的所有用户来说都很常见,这是有区别的。如果我将 raking 算法放在服务器端,即使所有用户的结果都相同,但相同的算法必须运行多次(例如,如果有 10000 个用户,相同的算法在服务器端运行 10000 次)。但如果我确实放在客户端,我可能会超过这个。但需要专家的解决方案。
【问题讨论】:
-
由于您的算法很复杂,最好在服务器上运行并将结果传递给客户端,因为它会使应用程序更具响应性
-
取决于您的资源、预算和货币化。如果您的客户为完成该算法而付费,您可以提供服务器端解决方案,否则您将不得不在您的移动设备上进行。它还取决于它将在移动设备上运行多快?如果它花费的时间少于 100 毫秒,那么您不应该关心,如果这是用户明确愿意等待的事情,它甚至可能需要长达 8-10 秒。
-
如果您的算法是一个需要花费大量时间和金钱开发的商业机密,那么它也不应该在应用程序中运行或存储,因为它可能会被逆向工程。
标签: java php android mysql performance