performance - Web开发有没有像CAP这样的定理?

标签 performance web-services testing

当您在 Web 开发场景中构建某些东西时,您通常会考虑成本/资源,并且通常会在三种资源之间进行权衡:

  • CPU(一般处理)
  • 内存(一般存储)
  • 网络/带宽(或者甚至是外部/服务器资源)

这里的定理很简单,只能选其中两个低的。

如果你想要低 CPU 和内存,你必须让服务器来完成工作(高带宽使用)

如果你想要低内存和带宽,CPU 将不得不做额外的工作来创建和重新创建移动中的东西。

如果你想要低 CPU 和带宽,内存将不得不存储更多信息和可能重复的数据。

我的问题是,这个定理有名字吗?或者这三种资源的管理?我想了解更多关于在每个场景中选择最佳选项背后的理论以及与此相关的研究。

老实说,我不知道这个社区是否适合这个问题,这主要是一个理论/学术问题。

最佳答案

这样不行。对于所有 3 种资源,在大多数情况下,您可以通过简单地添加更多资源来实现较低的使用率。如果您的 CPU 使用率很高,那么将您的应用程序部署到具有两倍以上 CPU 的服务器上。所以如果你有钱,你可以达到低使用水平。在 CAP 中,您有多少钱并不重要。

也来自维基百科:

CAP 经常被误解为必须始终选择放弃三种保证之一。事实上,只有当网络分区或故障发生时,才真正在一致性和可用性之间做出选择;在所有其他时间,无需进行权衡

关于performance - Web开发有没有像CAP这样的定理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56176468/

相关文章:

ruby-on-rails-3 - Rails的性能问题:如何发送gzip Assets

java - 防止 Java XML Web 服务中的枚举

web-services - 如何在 GUI 应用程序的 HATEOAS API 中处理全局超媒体?

java - 通过 https 连接时出现 SSL 握手异常

testing - 渐变 : java tests ran twice

angularjs - 重新加载 Angular 应用程序时 Protractor 测试有时会失败

javascript - 这样使用jQuery会不会减慢页面显示次数?

C++ 序列化性能

Java 性能 : When clearing a object is it better to set to null or create a new object.

javascript - 如何测试 shouldComponentUpdate 方法?