内容简介:我唯一要说的是编写你的应用程序,以便它可以从一开始就部署在集群上.以上任何事情都是过早的优化.您的第一份工作应该是让足够多的用户遇到扩展问题.尽可能简单地构建代码,然后对系统进行概要分析,并仅在存在明显性能问题时进行优化.通常,分析代码的数字是违反直觉的.瓶颈往往存在于你认为不会缓慢的模块中.在优化方面,数据是最重要的.如果您优化了您认为会很慢的部件,您通常会优化错误的部件.
(注意:刚刚了解了 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元
在不远的未来,日常物品将能够迅速理解我们的需求,改善我们的生活,并随处可见。为了实现这一预期,我们需要能够发现用户使用产品的场景,找到用户高频刚需痛点的产品设计者。 站在下一个转型发展的悬崖上,我们看到技术将更具人性。随着物联网的发展,我们习以为常的数百件日常物品:汽车、钱包、手表、雨伞甚至垃圾桶,都将回应我们的需求,了解我们,学习为我们思考。最先出现的智能硬件为什么是智能手环、无人驾驶汽车......一起来看看 《极致:互联网时代的产品设计》 这本书的介绍吧!