算法 – 如何使我的应用程序扩展良好?

栏目: 编程工具 · 发布时间: 7年前

内容简介:我唯一要说的是编写你的应用程序,以便它可以从一开始就部署在集群上.以上任何事情都是过早的优化.您的第一份工作应该是让足够多的用户遇到扩展问题.尽可能简单地构建代码,然后对系统进行概要分析,并仅在存在明显性能问题时进行优化.通常,分析代码的数字是违反直觉的.瓶颈往往存在于你认为不会缓慢的模块中.在优化方面,数据是最重要的.如果您优化了您认为会很慢的部件,您通常会优化错误的部件.
一般而言,哪种设计决策有助于应用程序很好地扩展?

(注意:刚刚了解了 Big O Notation ,我想在这里收集更多编程原则.我试图通过回答下面的问题来解释Big O Notation,但我希望社区能够改进这个问题和答案.)

到目前为止的回应

1)定义缩放.您是否需要扩展虚拟环境中的大量用户,流量和对象?

2)看看你的算法.他们的工作量是否会与实际工作量成线性关系 – 即要循环的项目数量,用户数量等等?

3)看看你的硬件.您的应用程序是否设计为可以在多台计算机上运行,​​如果无法跟上?

次要的想法

1)不要过早优化太多 – 先测试一下.也许瓶颈会发生在不可预见的地方.

2)也许扩展的需要不会超过摩尔定律,也许升级硬件会比重构更便宜.

我唯一要说的是编写你的应用程序,以便它可以从一开始就部署在集群上.以上任何事情都是过早的优化.您的第一份工作应该是让足够多的用户遇到扩展问题.

尽可能简单地构建代码,然后对系统进行概要分析,并仅在存在明显性能问题时进行优化.

通常,分析代码的数字是违反直觉的.瓶颈往往存在于你认为不会缓慢的模块中.在优化方面,数据是最重要的.如果您优化了您认为会很慢的部件,您通常会优化错误的部件.

翻译自:https://stackoverflow.com/questions/41367/how-can-i-make-my-applications-scale-well


以上所述就是小编给大家介绍的《算法 – 如何使我的应用程序扩展良好?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

极致:互联网时代的产品设计

极致:互联网时代的产品设计

戴维•罗斯 / 中信出版集团 / 2016-6 / 49.00元

在不远的未来,日常物品将能够迅速理解我们的需求,改善我们的生活,并随处可见。为了实现这一预期,我们需要能够发现用户使用产品的场景,找到用户高频刚需痛点的产品设计者。 站在下一个转型发展的悬崖上,我们看到技术将更具人性。随着物联网的发展,我们习以为常的数百件日常物品:汽车、钱包、手表、雨伞甚至垃圾桶,都将回应我们的需求,了解我们,学习为我们思考。最先出现的智能硬件为什么是智能手环、无人驾驶汽车......一起来看看 《极致:互联网时代的产品设计》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具