一些导致程序性能低下的写法,造成生产环境卡顿甚至崩溃,现总结如下:
1、for循环中连接数据库。
2、for循环嵌套for循环。
3、在方法中获取配置文件内容,高并发下导致获取失败。
正确代码示例:
在类中定义静态变量,程序启动时获取一次,获取方法如下:
private static String filterTables = PropertyLoader.getPropertyValue("workflowconfig/business/workflowmanager.properties","filter.table");
4、表字段未创建索引、或者索引无效,有的表甚至没有主键。
5、SQL中的嵌套太多,逻辑过于复杂,效率低、不方便维护。
6、不必要的对象创建
错误示例
for (int i = 0; i < 1000; i++) {
String s = new String("abc");
}
正确示例
String s = "abc";
for (int i = 0; i < 1000; i++) {
// 使用同一个字符串对象s
}
7、字符串拼接未优化
错误示例
String result = "";
for (int i = 0; i < 1000; i++) {
result += i;
}
正确示例
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++) {
sb.append(i);
}
String result = sb.toString();