内容简介:我唯一要说的是编写你的应用程序,以便它可以从一开始就部署在集群上.以上任何事情都是过早的优化.您的第一份工作应该是让足够多的用户遇到扩展问题.尽可能简单地构建代码,然后对系统进行概要分析,并仅在存在明显性能问题时进行优化.通常,分析代码的数字是违反直觉的.瓶颈往往存在于你认为不会缓慢的模块中.在优化方面,数据是最重要的.如果您优化了您认为会很慢的部件,您通常会优化错误的部件.
一般而言,哪种设计决策有助于应用程序很好地扩展?
(注意:刚刚了解了 Big O Notation ,我想在这里收集更多编程原则.我试图通过回答下面的问题来解释Big O Notation,但我希望社区能够改进这个问题和答案.)
到目前为止的回应
1)定义缩放.您是否需要扩展虚拟环境中的大量用户,流量和对象?
2)看看你的算法.他们的工作量是否会与实际工作量成线性关系 – 即要循环的项目数量,用户数量等等?
3)看看你的硬件.您的应用程序是否设计为可以在多台计算机上运行,如果无法跟上?
次要的想法
1)不要过早优化太多 – 先测试一下.也许瓶颈会发生在不可预见的地方.
2)也许扩展的需要不会超过摩尔定律,也许升级硬件会比重构更便宜.
我唯一要说的是编写你的应用程序,以便它可以从一开始就部署在集群上.以上任何事情都是过早的优化.您的第一份工作应该是让足够多的用户遇到扩展问题.
尽可能简单地构建代码,然后对系统进行概要分析,并仅在存在明显性能问题时进行优化.
通常,分析代码的数字是违反直觉的.瓶颈往往存在于你认为不会缓慢的模块中.在优化方面,数据是最重要的.如果您优化了您认为会很慢的部件,您通常会优化错误的部件.
翻译自:https://stackoverflow.com/questions/41367/how-can-i-make-my-applications-scale-well
以上所述就是小编给大家介绍的《算法 – 如何使我的应用程序扩展良好?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 利用3D算法和神经网络 初创公司Wannaby推AR试鞋应用程序
- Android里应用程序,应用程序窗口和视图对象之间的关系
- 使用 Bluemix、Watson Discovery 和 Cloudant 构建移动应用程序来分析其他应用程序
- ChromeOS 终端应用程序暗示其即将支持 Linux 应用
- 这几天在C程序中有哪些应用程序?
- Zookeeper详解-应用程序(七)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。