记住一句名言:出来混总是要还的。
我们设计一个系统希望用户用起非常的爽快,这操作界面多友好,这响应速度多快,这多么安全和稳定,目标达到了,钱也赚了,用户量越来越大,我们发现系统处理不了了,怎么办?
系统的性能度量按照科学的角度是需要用工具认真测试的,它有很多个切面来衡量,性能度量有两个大的方面:第一个是有多块,第二个是有多少?所以关注系统的性能我们要仔细度量,我们到底是要求速度呢?还是说工作量,但是所有这一切在用户眼中是浮云,他们只关心:操作友好吗?速度够快吗?安全可用和稳定吗?我们人多了你还能抗得住吗?
一个机器的性能是有限的,我们应该投资我们的架构可以跑在多个机器上,这样我们才能够达到用户的那个需求:我们人多了你要抗得住。一个程序如果在单机上运行得非常好但是未必在多个机器上运行得好。
性能和伸缩性有时候是对立的,但是伸缩性又非常重要,所以我们应该做这个选择题:伸缩性 > 性能。程序的设计理念应该是:正确和安全,然后考虑跑得更快,程序如果只追求快速,那么可能会带来复杂性和低维护性,比如破坏OO的封装,使用了难以看懂的算法,代码优化在系统总体性能优化上占的比重很低,我们应该把中心放在设计上和整个体系的把握,避免不成熟的代码优化。
现在说说多线程:
多线程可以提高性能,同时还提供可伸缩性,好了,要在性能和可伸缩性这个矛盾对立的两个关注点上使用好线程不是很简单的,线程带来了协调开销(比如加锁,信号,内存同步),上下文切换,生命周期管理,调度等等开销,如果使用不当,多线程程序将比顺序化程序还慢。在Java的多线程编程中,锁是必然遇到的,锁带来了串行化和性能开销,系统中如果减少锁的竞争可以提高伸缩性和性能,所以我们要尽量减少锁被持有的时间,锁被请求的频率,或者用协调机制取代独占锁从而允许更好的并发性。
分享到:
相关推荐
资源名称:数据访问宝典-实现最优性能可伸缩性的数据库应用程序内容简介:在当今的企业数据库应用程序中,性能和可伸缩性比过去任何时候更为关键,传统的数据库调整对于解决可能在这些应用程序中遇到的性能问题有些...
VB.NET可伸缩性技术手册VB.NET可伸缩性技术手册VB.NET可伸缩性技术手册VB.NET可伸缩性技术手册VB.NET可伸缩性技术手册VB.NET可伸缩性技术手册VB.NET可伸缩性技术手册VB.NET可伸缩性技术手册VB.NET可伸缩性技术手册VB...
分布式系统可伸缩性研究综述_陈斌.pdf
在计算机处理器发展为包含越来越多的核心的时期,多线程是创建可伸缩性、高效的、高响应性应用程序的关键因素。如果你没有正确地使用多线程,它会导致难以捉摸的问题,需要你花费大量时间去解决。因此,现代应用程序...
可以帮助企业降低计算成本,提高性能、可伸缩性、可用性和安全性
本指南提供了有关 Microsoft Exchange Server 2003 性能和可伸缩性的信息。您将了解影响性能的多种因素,它还提供了有关如何优化 Exchange 2003 环境的建议。最后,本指南回顾了 Exchange 如何在不同的用户负载下...
高性能服务器网络可伸缩性.doc
Cardinal:一个模块化、移动优先的CSS框架专注于性能和可伸缩性
提供有关在整个.NET应用程序生命周期中管理性能和可伸缩性的端到端指南,以降低风险并降低总体拥有成本。
大数据-算法-多核环境下面向数据并行编程模型的性能和可伸缩性研究.pdf
高性能服务器网络可伸缩性.doc
多线程可以有效提升计算和处理效率,大大提升吞吐量和可伸缩性,深得广大程序员和公司的青睐。很多人学习完JavaSE/JavaEE之后想往更深入的技术进行探索,比如对大数据、分布式、高并发类的专题进行攻克时,立即遇到...
本书包含:构建和开发应用程序,以便它们易于扩展。 了解不同的缩放和分区选项以及组合。 学习加快响应速度的技巧。 深入研究缓存,列族...有效平衡可扩展性,性能,响应能力和可用性,同时最大限度地减少停机时间。
本文将讲述几项技术,这些技术可用于提高基于 SQL Server的应用程序的性能或改善其可伸缩性。将仔细说明 LEFT JOIN、CROSS JOIN 的使用以及IDENTITY 值的检索。调整您的数据库及其查询需要占用时间、进行分析,还...
nanomsg - 一个简单的高性能实现多个“可伸缩性协议”
本代码实现了对MPEG2 SNR可伸缩性编码,可以作为理解SNR可伸缩性编码的入门。
Disruptor 高性能线程间消息传递库,通过它来实现“消息中心”,跨线程消息传递so easy! HikariCP 稳定、高性能的JDBC连接池。github star破11k! logback 快速、灵活的日志库,log4j作者的续作。 fastjson 马爸爸家...
全书共分6章和2个附录,讲述了可伸缩性的规划、数据层、中间层、表示层,以及可伸缩性的测量等内容。 本书内容切合实际,适合希望了解如何开发可伸缩的企业级的应用程序的VB.NET程序员阅读。 本书英文原名为:...
全书共分6章和2个附录,讲述了可伸缩性的规划、数据层、中间层、表示层,以及可伸缩性的测量等内容。 本书内容切合实际,适合希望了解如何开发可伸缩的企业级的应用程序的VB.NET程序员阅读。 本书英文原名为:...
很不错的几个windows可可伸缩性范例,让你受益匪浅!