大型互联网应该用Lucene代替 like “%%” 查询
大型互联网应用中用 like "%%" 进行查询的效率是非常低效的,应该采用搜索引擎如Lucene来完成文字检索的任务
大型互联网应用中用 like "%%" 进行查询的效率是非常低效的,应该采用搜索引擎如Lucene来完成文字检索的任务
很好用。可以记录应用程序和Web程序中各个方法的执行时间。重要的是它免费且开源。 See http://jiprof.sourceforge.net/
也就是在当前所有的功能模块中做一下“切片”,切出来的片可以典型地代表系统的性能,如果这个切片能通过测试,那就可以认为系统性能可以满足要求。 那么怎么样决定哪个功能属于切片呢?"Often the vertical slice will implement some of the functionality that we suspect will have the worst performance in the application and some of the functionality that will be most heavily used in production"
1. [Recommended]Web Application Stress (WAS) Tool( http://webtool.rte.microsoft.com/). 2. Apache JMeter (available at http://jakarta.apache.org/jmeter/index.html) 3.Grinder
1. JVM Profiling Option "starting a Sun Java 1.3 JVM with the following arguments will cause it to dump profile output when it quits: -Xrunhprof:cpu=samples,thread=y" 2. JProbe
Rod Johnson 说load测试未必要针对整个Application才能做,我们也可以针对单个业务对象来测。具体该怎么玩我还没玩,这里先记录一些工具名: 1.Grinder 2.Rod自己写的一个无界面的工具包:com.interface21.load
从web服务器的角度说,当前的并发数就是 当前这个瞬间,我们的应用使用了多少tcp连接提供服务 apache httpd的mod_status模块可以查看这个值 那什么叫服务器的最大并发数呢? linux默认可以建立1024个socket,是不是最大并发数就是1024呢? 这里要考虑一下web应用的健康状态。如果web应用在500连接时就已经慢得像蜗牛,或者频繁给http500错误,那并发500又有什么意义? 最大并发数应该是指 应用的功能和性能满足需求的前提下,所允许最大连接数。
基本可看的资料: http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/index.html http://www.javazy.com/contentex/200641293233.shtml 进一步调整: http://internet.blog.enorth.com.cn/article/252340.shtml http://tomcat.apache.org/connectors-doc/reference/workers.html 还有: http://www.iteye.com/topic/53610 用mod_proxy更好 http://neptune.iteye.com/blog/146591 window下apache配置
摘自《withou ejb》 1.不必要的数据库访问 2.在JAVA对象和XML文档之间进行过度的转换 3.过多地进行远程调用
概括自牛书《软件性能测试-段念》 对于交互式系统,为了模拟真实业务,应该设一个思考时间 对于非交互式系统,为了找出系统的最大吞吐量和可承受的最大压力,可以不设思考时间