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

Cha*_*ala 9 php java mysql performance android

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

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

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

我的问题是"在哪里运行这种算法?".我应该在PHP中编写代码以使算法在服务器端运行,然后将此数据发送到客户端(或)我是否应该使用从服务器收集的数据在JAVA(Android Studio)中编写代码.

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

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

我对异步任务和多线程有所了解.

这种疑问来自我,因为排名对我的所有用户来说都很常见,这是有区别的.如果我在服务器端放置raking算法,即使所有用户的结果都相同,同样的算法也要运行几次(比如说有10000个用户,同一算法在服务器端运行10000次).但是,如果我确实放在客户端,我可能会过来.但需要专家解决方案.

Luc*_*ero 5

这个问题可能有点基于意见,但我认为您可以使用一些设计规则作为指导:

  • 当计算需要大量数据时,尽可能接近数据.这通常在数据库本身.传输大量数据是资源密集型的,而不是慢速链接(例如服务器和客户端之间)的好主意.
  • 如果计算需要处理私有数据,则还设置数据为计算目的可行进多远的界限.不在客户端显示数据不保护私有数据!
  • 当资源密集的计算可以被缓存时,对许多用户有效,甚至可以提前计算,在服务器上执行并缓存结果.
  • 如果计算需要很少的数据但是计算量很大,那么问问自己,服务器是否可以很好地扩展以维持所有客户端发出并发请求.尽管客户端资源有限(现在仍然非常有用!),让客户端计算此类操作可以使整体性能更加稳定.