在日常开发或者调试的过程中,尽量使用log4j2或者logback这些异步的方法,进行日志的统一收集,少用甚至是禁止用System.out.println.
public class HelloWorld {
public static void main(String[] args) {
System.out.
println("Hello World");
Freebencher 是一个极其灵活易用的性能测试工具。之所以灵活,是因为你可以用任意 Java 代码来写性能测试用例,你可以测试任何可以用 Java 代码来表示的行为,你可以用任何你自己喜欢的方式在测试时获取你的测试数据。
生成的结果类似于 apache ab 的结果, 使用你喜欢的 concurrency,qps 等概念。
你可以通过 Maven 把 freebencer 迅速导入到你的项目中,调用你自己的业务方法,而不是像 Jmeter 一样,把你的类文件别扭地复制到它的目录中。
例: @Test
public void testLogin() {
final List userList = new ArrayList();
...//preparing userList to be used as test data.
FbJobResult result = Freebencher.benchmark(new FbTarget() { //the behavior
@Override
public boolean invoke() {
User user = userList.get(RandomUtils
.nextInt(userList.size()));
int statusCode = remoteServiceToTest.doLogin(user.getUsername(), user.getClearPassword());
return statusCode == 200;
}, 5, // concurrency,
50 // number of tests to run
System.out.println(result.report());
}得到结果:Test started.
Awaiting termination...
Test completed.
Concurrency: 5
Time taken for tests: 119ms
Successful tests: 50
Failed tests: 0
Tests per second: 420.16806722689074
Mean time per test: 11.38ms
Percentage of the test finished within a certain time (ms)
50%: 11
60%: 12
70%: 12
80%: 13
90%: 14
95%: 14
98%: 14
99%: 16
100%: 16
标签:freebencher 性能测试
//@Test 查询基本类型
public void testObject() throws Exception{
Finder finder=new Finder("select id from [Users] where 1=1 ");
finder.append("and userId=:userId").setParam("userId", 6);
Integer id = baseFangService.queryForObject(finder, Integer.class);
System.out.
println(id);
//@Test 查询日期
public void testObjectDate() throws Exception{
Finder finder=new Finder("select cteateTime from Users where id=6 order by id");
Date id = baseFangService.queryForObject(finder, Date.class);
System.out.
println(id);
//@Test 查询一个对象
public void testObjectUser() throws Exception{
Finder finder=new Finder("select * from Users where id=6 order by id");
Users u = baseFangService.queryForObject(finder, Users.class);
System.out.
println(u.getName());
//@Test 查询分页
public void testMsSql() throws Exception{
Finder finder=new Finder("select * from Users order by id");
List<Users> list = baseFangService.queryForList(finder, Users.class, new Page(2));
System.out.
println(list.size());
for(Users s:list){
System.out.
println(s.getName());
//@Test 调用数据库存储过程
public void testProc() throws Exception{
Finder finder=new Finder();
finder.setParam("unitId", 0);
finder.setProcName("proc_up");
Map queryObjectByProc = (Map) baseFangService.queryObjectByProc(finder);
System.out.
println(queryObjectByProc.get("#update-count-10"));
//@Test 调用数据库函数
public void testFunction() throws Exception{
Finder finder=new Finder();
finder.setFunName("fun_userId");
finder.setParam("userId", 6);
String userName= baseFangService.queryForObjectByByFunction(finder,String.class);
System.out.
println(userName);
System.out.println()标准输出方法性能影响一窥#以前在写功能性代码的时候就知道,代码功能性的强大往往意味着性能的丢失。那么非常好用支持任何格式输出到控制台的System.out.println()标准输出方法究竟是如何工作的呢?做一个简单的测试public class TestOut {
private static long timeOut = System.curren
初学者一般在开发中或者调试bug的时候,都会习惯性的使用System.out.println语句,输出到控制台中,观察数据是否正常。开发或者调试完毕,很可能就忘记删除,直接就发布到生产中去了。
有童鞋会说,那有啥关系的,不就是控制台多打印一些日志嘛。那今天老师就和童鞋们分析一下,System.out.println输出语句对服务性能的影响。
假如你的服务对性能要求极高,...
List list = new ArrayList<Object>();
long t = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
list.add("sssss-:" + i);
long t1 = System.currentTimeMillis();
在项目开发中,查看输出值,简单调试或许会用到System.out.println()方法。但是正式上线项目,切记不要闲来无事写几个System.out.println(),轻则会使性能受影响重则让服务器瘫痪。直接上代码 <textarea readonly="readonly" name="code" class="Java">
* Prints a String and ...
这两天在验证问题的时候, 突然发现一个问题System.out.
println( ) 会
影响测试的准确性,
因为System.out.
println( ) 本来
性能就很差!!!!!!\
所以特意做了个
性能测试.
二.测试代码
问题:在java项目中使用system.out来打印调试信息很方便,项目上线时QA说system.out非常影响服务性能,建议全去掉。
原因:system.out 和java运行程序运行在同一线程,也就是说,业务程序会等待system.out的动作,导致资源被占用。
解决办法:改用log4j 等工具进行调试信息的打印。这类工具是异步线程的,不会使程序处于等待状态。
参考:System.out...
讲讲你不知道的System.out.println
在开发或者调试bug的过程中,有些同学经常用到System.out.println语句,输出到控制台,用来查看数据是否正常。
开发或者调试完毕,很可能就忘记删除,直接就发布到生产中去了。
在一些对性能要求比较高的项目当中,忘记删除的这些代码,就成为将为需要清除优化的对象了。
System.out.println 这个语句 对性...
public void update() {
logger.info("开始测试修改"); // 使用日志工具代替 System.out.
println()
Student student = studentDao.getById(3); // 先查询此数据是否存在
if (student != null) {
studentDao.batchUpdate(studentList); // 批量更新
解决idea启动项目报错:Unable to open debugger port(127.0.0.1:62405):java.net.SocketException"socket closed
26444
解决idea启动项目报错:Unable to open debugger port(127.0.0.1:62405):java.net.SocketException"socket closed