对集合进行排序 - 客户端或服务器端的位置会更快?

时间:2012-01-18 17:57:44

标签: javascript client-side server-side

我有一个关于客户端与服务器端处理的问题。

我有一个相当大的对象集合(比如说包含日常字段的“用户”对象集合 - namelast nameageisAdmin等...)

现在,我想将这个大集合分成两个小集合,其中谓词是一个布尔字段 - isAdmin - 告诉我们用户是否是管理员。

分离后,我需要将两个最终集合发送到服务器端,以进行更复杂的处理。

我想知道在客户端进行排序和拆分会更有效率(或许使用Javascript或jQuery?它可以做到吗?)或者只是将大集合发送到服务器并让它处理所有内容(使用LINQ进行拆分和进一步处理)。

通常情况下,在哪种情况下使用客户端而不是服务器端更好?为什么?

2 个答案:

答案 0 :(得分:4)

与往常一样,性能问题一般很难回答,因此取决于:

  • 数据集的大小(“相当大的集合”是指100或1000000?)
  • 客户端和服务器端硬件
  • 网络延迟和传输速度......

你真的需要做一些测试来解决这个问题。即便如此,因为每个用户都可能在不同的计算机上,所以我的2001年份硬件上的答案可能会有所不同,相比之下,拥有16GB内存和最高效的javascript解释器的2011四核心的人。

答案 1 :(得分:2)

对此没有简单的答案,因为有很多变量在起作用,如:

  • 计算能力
  • 计算工作量
  • 使用各种语言对算法实现进行排序(记住jQuery 不是一种语言)

......可能还有很多其他事情。

过去我们可以说服务器总是比客户端更快,但由于强大计算的高可用性和应用程序托管的商品化,这不再是真的。

但除了速度之外,还有其他需要考虑的事情,比如安全性。如果您的用户对象包含敏感信息,您真的想要信任客户端计算机上的数据吗?