java – 在哪里运行复杂的算法?服务器端还是客户端?

我正在尝试开发一个包含巨大用户数据库的社交网络 android应用程序.我对 Android App开发非常新鲜,并试图了解应用程序开发背后的概念.
我正在使用以下技术:

1)MysqL PHP(RESTful Web服务)
2)Android Studio(Java)

在应用程序中,我必须运行一些复杂的算法,用于对从云服务器中存储的数据库中的不同表格中收集数据进行排名.

我的问题是“在哪里运行这个算法?”.
我应该用PHP编写代码,使算法在服务器端运行,然后将这些数据发送给客户端
(要么)
我应该使用从服务器收集的数据在JAVA(Android Studio)中编写代码.

在这两种情况下,我的应用程序的性能如何不同?

编辑:感谢您的所有回应.

我有异步任务和多线程的想法.

这个疑问来到我,因为排名对我所有的用户来说都是常见的,有所不同.如果我将耙机算法放在服务器端,即使所有用户的结果相同,同一个算法必须运行多次(如果有10000个用户,同一个算法在服务器端运行10000次).但是,如果我放在客户端,我可能会过来.但需要专家解决方案.

解决方法

这个问题可能有些是基于意见的,但我认为有几个设计规则可以用作指导原则:

>当计算需要大量数据时,尽可能靠近数据.这通常在数据库本身.转移大量数据是资源密集型的,而不是缓慢链接(例如在服务器和客户端之间)的好主意.>如果计算需要处理私有数据,则也可以设置数据可以用于计算目的的距离.不显示客户端的数据不是保护私有数据!>当计算资源密集型可以缓存时,对许多用户有效,甚至可以提前计算,在服务器上执行并缓存结果.>如果计算需要很少的数据但是计算密集,请问自己是否可以扩展足够的服务器来维持所有客户端进行并发请求.客户端计算这样的操作可以导致更稳定的性能,尽管客户端的资源有限(现在仍然很可用!).

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...