优化
阿宇万岁
学无止境
展开
-
大型网站系统架构的演化
前言 一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随业务扩展而完善出来的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如淘宝,要解决海转载 2015-10-16 13:01:40 · 250 阅读 · 0 评论 -
java程序性能优化
一、避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。 例子: import java.util.vector;class cel { void method (vector vector) { for (int i = 0; i < vector.转载 2015-10-16 13:17:21 · 185 阅读 · 0 评论 -
大型网站的灵魂——性能
前言 在前一篇随笔《大型网站系统架构的演化》中,介绍了大型网站的演化过程,期间穿插了一些技术和手段,我们可以从中看出一个大型网站的轮廓,但想要掌握设计开发维护大型网站的技术,需要我们一步一步去研究实践。所以我打算写一个系列,从理论到实践讲述大型网站的点滴,这也是一个共同学习的过程,希望自己能坚持下去。系列大概会分为两部分,理论和实践,理论部分尽量通俗易懂,也要讲一些细节。实践部分会抽取一转载 2015-10-16 13:46:56 · 297 阅读 · 0 评论 -
系统负载能力
一. 衡量指标用什么来衡量一个系统的负载能力呢?有一个概念叫做每秒请求数(Requests per second),指的是每秒能够成功处理请求的数目。比如说,你可以配置tomcat服务器的maxConnection为无限大,但是受限于服务器系统或者硬件限制,很多请求是不会在一定的时间内得到响应的,这并不作为一个成功的请求,其中成功得到响应的请求数即为每秒请求数,反应出系统的负载能力。原创 2015-11-06 09:48:57 · 545 阅读 · 0 评论 -
锁在应用层的优化思路
减少锁的持有时间减小锁粒度比如:ConcurrentHashMap中增加一个表项,并不是将整个HashMap加锁,而是首先根据hashcode得到该表项应该被存放到哪个段中,然后对该段加锁,并完成put()操作。在多线程环境中,如果多个线程同时进行put()操作,只要被加入的表项不存放在同一个段中,则线程间便可以做到真正的并发。锁分离依据应用程序的功能特点,将一个独占锁分成多个锁。如:Li原创 2015-10-12 15:38:33 · 486 阅读 · 0 评论 -
锁在java虚拟机中的实现和优化
偏向锁思想:若某一锁被线程获取后,便进入偏向模式,当线程再次请求这个锁是,无需再进行相关的同步操作,从而节省了操作时间。偏向锁使用于竞争不激烈的情况,在竞争激烈的情况下,会导致持有锁的线程不停地切换,锁也很难一直保持在偏向模式,此时,不仅得不到性能的优化,反而有可能降低系统性能。轻量级锁如果偏向锁失败,Java虚拟机会让线程申请轻量级锁。锁膨胀当轻量级锁失败,虚拟机就会使用重量级锁原创 2015-10-12 15:47:41 · 408 阅读 · 0 评论