哪里可以更快地对集合进行排序?客户端还是服务器端
Where would it be quicker to sort a collection - client side or server side?
我有一个关于客户端与服务器端处理的问题。
我有一个相当大的对象集合(比如说一个由日常字段name
、last name
、age
、isAdmin
等组成的"用户"对象集合)
现在,我想把这个大集合分成两个小集合,其中谓词是一个布尔字段isAdmin
,它告诉我们用户是否是管理员。
分离后,我需要将两个最终集合发送到服务器端,以便进行一些更复杂的处理。
我想知道在客户端进行排序和拆分(可能使用Javascript或jQuery?它会起作用吗?)或者只是将大集合发送到服务器,让它处理所有事情(使用LINQ进行拆分和进一步处理),在哪里更有效。
一般来说,在哪些情况下使用客户端比使用服务器端更好?为什么?
与往常一样,性能问题通常很难回答,因此它取决于:
- 数据集的大小("相当大的集合"是指100还是1000000?)
- 客户端和服务器端硬件
- 网络延迟和传输速度
你真的需要做一些测试才能弄清楚这一点。即便如此,因为每个用户都可能在不同的电脑上,所以与2011年拥有16GB内存和最高效javascript解释器的四核电脑相比,我在2001年的老式硬件上的答案可能会有所不同。
这个问题真的没有简单的答案,因为有很多变量在起作用,比如:
- 计算能力
- 计算工作量
- 各种语言的排序算法实现(请记住jQuery是而不是一种语言)
可能还有其他一些事情。
过去的情况是,我们可以说服务器总是比客户端快,但现在不一定是这样了,因为强大的计算的高可用性和应用程序托管的商品化。
但除了速度,还有其他因素需要考虑,比如安全性。如果您的User对象包含敏感信息,您真的想将这些数据信任客户端的计算机吗?
相关文章:
- 使用html和Javascript进行客户端排序
- Telerik RadGrid排序客户端JavaScript jQuery
- 在客户端的Laravel中排序/筛选表的最受欢迎的方式
- 如何在客户端通过多个字段对java对象进行排序
- 流星:等待客户端排序的集合
- 从服务器更新的 meteor 集合,不会在客户端上被动排序
- 数据排序应该在客户端还是服务器上完成
- YUI 2.8.2 数据表在客户端按钮单击操作完成后对旧值进行排序
- 在服务器端(PHP / MySQL)或客户端(js)排序
- 当客户端的下拉菜单触发时,如何对特定列进行排序
- 客户端内部排序<李>标记值
- 如何在不点击标题的情况下从客户端对网格视图进行排序
- 哪里可以更快地对集合进行排序?客户端还是服务器端
- 排序html表列客户端没有第三方以外的jquery
- 误导jqgrid文档:客户端排序,但服务器端分页
- JQGrid客户端排序
- 排序表客户端与纯JavaScript和没有任何库
- telerik radGrid - 在排序/分页/过滤器上保持客户端状态
- 在客户端中排序淘汰赛网格
- Minimongo不能在客户端进行集合排序