可扩展性的正式定义是什么?

时间:2014-09-10 14:53:34

标签: scalability

当我读到不同网站上的可扩展性定义时。我在CPU& amp;软件意味着随着CPU数量的增加,软件的性能也会提高。

然而,“Peter Pacheco对并行编程的介绍”一书中关于可伸缩性的描述是不同的,如下:

“假设我们运行一个具有固定数量的进程/线程和固定输入大小的并行程序,并且我们获得了效率E.假设我们现在增加了程序使用的进程/线程数。如果我们可以找到相应的问题大小增加率,使程序始终具有效率E,然后程序就是 可扩展性。 我的问题是可伸缩性的正确定义是什么?如果我正在对并行软件的可扩展性进行测试,我应该看一下两者中的哪个定义?

1 个答案:

答案 0 :(得分:1)

可伸缩性是应用程序在大量客户端使用时能够正常运行并保持可接受的用户体验的能力。

优选地,这种能力应该通过代码中的优雅解决方案来实现,但是如果不可能,应用程序的设计必须允许使用硬件进行水平增长(添加更多计算机,而不是提高一台计算机的性能)。 / p>

可扩展性随着业务规模而增长的问题。优秀的例子是Facebook(video)和Dropbox(video)。此外,这是哈佛大学会议的各种可扩展性方法的great explanation

可扩展性还指user interface能够在保持用户体验的同时适应各种屏幕尺寸