【问题标题】:Where would it be quicker to sort a collection - client side or server side?在哪里对集合进行排序更快 - 客户端或服务器端?
【发布时间】:2012-01-18 17:57:44
【问题描述】:

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

我有一个相当大的对象集合(可以说是由日常字段组成的“用户”对象集合 - namelast nameageisAdmin 等...)

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

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

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

一般来说,在哪些情况下使用客户端优于服务器端?为什么?

【问题讨论】:

    标签: javascript client-side server-side


    【解决方案1】:

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

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

    您确实必须进行一些测试才能弄清楚这一点。即便如此,因为每个用户都可能在不同的计算机上,所以对于我的 2001 年老式硬件与使用 2011 年四核、16GB 内存和最高效的 javascript 解释器的人来说,答案可能会有所不同。

    【讨论】:

    • 在我的情况下...大集合将是 10 的结果...客户端和服务器都是强大的机器...网络可能有滞后。它如何改变答案?
    • 对于这么小的数字,我猜你最好还是在客户端做。
    【解决方案2】:

    这确实没有简单的答案,因为有很多变量在起作用,例如:

    • 计算能力
    • 计算工作负载
    • 各种语言的排序算法实现(记住,jQuery 不是一种语言)

    ...可能还有很多其他的东西。

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

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

    【讨论】:

    • “你真的想信任客户的计算机来处理这些数据吗?”。如果我能不止一次地支持这个声明。
    猜你喜欢
    • 2014-02-20
    • 1970-01-01
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多