matlab可扩展性,“可扩展性”是什么意思?

我读了许多比较编程语言的文章。

通常有一个词:可伸缩性。 我实际上试图寻找一个简单明确的解释,但没有发现任何东西。

您能否解释可扩展性术语的含义?

看一下可伸缩性标签的悬停……这是一个好的开始! 谷歌它,以及。 那里有十亿资源可以完全轻松地对其进行解释...例如shiflett.org/blog/2003/oct/what-is-scalability

在@ king14nyrs链接中的图中,O(c ^ n),O(n)和O(log(n))均为Big-O表示法。 如您所见,使用大量数据(n条记录)时,具有O(log(n))模式的程序将运行得很好,而O(c ^ n)的性能将非常差。 这是两个极端。

Scala是一种源于"可扩展性"的语言。 这意味着什么,您可以在这里找到:softwareengineering.stackexchange.com/a/130340/92672

可伸缩性是程序进行伸缩的能力。例如,如果您可以在小型数据库(例如少于1000条记录)上执行某项操作,那么具有高度可伸缩性的程序既可以在小型数据库上运行,也可以在大型数据库上运行(例如数百万或数十亿条记录) )。

就像差距所说的那样,资源需求将呈线性增长。查找Big-O表示法,以获得有关数据输入越大程序如何需要更多计算的更多详细信息。大输入x时,诸如Big-O(x ^ 2)之类的抛物线效率远不如Big-O(x)线性之类。

这实际上是错误的。因为一个线性可伸缩性将具有线性增长。您仍然可以通过非线性方式(自然到极限)进行扩展。其次,通过更改硬件来获得/显示可伸缩性。如果我有一个庞大的设置,并且我首先以1 TPS的速度运行它,而实际上却可以处理100 TPS-在100TPS上运行它并不能扩展它。如果通过更改硬件可以将负载增加到10KTPS,则它是可扩展的

关于OP问题,我正在描述软件算法的可伸缩性。这种情况在大学课程中很典型。当比较两种潜在算法的可伸缩性时,具有线性资源需求的一种算法与具有抛物线资源需求的一种算法相比将具有高度可伸缩性。

我得到了软件算法中特别重要的可伸缩性。但是编程语言中的可伸缩性是什么?

@jafar,相同的原理适用于编程语言。当您可以在其中编写小型或大型程序且资源需求呈线性增长时,该编程语言是可伸缩的。这一切都取决于语言的语法和语义。有关不同语言的更多讨论和比较(尽管已经过时了几年)在这里:users.cms.caltech.edu/~mvanier/hacking/rants/

可伸缩性是软件解决方案可以处理增加的工作量的特征。这可以是更大的数据集,更高的请求率,大小和速度的组合等。

在谈到系统可伸缩性时,我们通常会区分

"向上扩展"-通过使用更强大的硬件进行扩展的能力

"横向扩展"-通过添加更多硬件进行扩展的能力

可以横向扩展的解决方案通常可以以更具成本效益的方式扩展为更大的负载。这里要了解的重要一件事是阿姆达尔定律,该定律指出横向扩展的能力受软件顺序部分的限制

这里已经有了不错的答案,只想在这里添加一些内容。

可伸缩性可以通过两种方式实现:

垂直-通过这种方式,您可以添加更多的硬件,例如更多的RAM,处理器或更多的节点。您还将介绍负载均衡器,该负载均衡器将有助于根据使用的路由算法将传入呼叫路由到各种服务器。由于跨服务器共享负载,因此该应用程序现在能够处理更多负载。

水平-在水平缩放中,您以某种方式设计/设计应用程序,使其在出现更多并行流量时表现良好。您检查如何管理内存,会话,高速缓存和状态等。如果使用会话维护用户信息,则在负载较重的情况下,单个服务器可能会更忙于管理服务器,因此在这种情况下,您可以检查变得无国籍。它还可以并行响应来自同一用户的传入请求,而无需串行响应(如果正在使用会话)。

我的理解是,这意味着所请求的输出线性增长仅需要资源的线性增长。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值