`
piao_bo_yi
  • 浏览: 4459 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于性能优化

阅读更多
我发现一个现象,很多两三年以下的人写代码动不动就扯性能,其实他们大部分人根本不知道到底哪是性能瓶颈,函数调用的效率,CPU执行指令需要的时间...工作效率低不说,还考虑很多没用的东西。个人感觉,性能这个东西应该考虑:
1.考虑程序的应用范围。如果你是给核反应堆写实时程序,那每一步你可能都得考虑,其他就大部分通用程序而言,你不用每一步都考虑。
2.性能要考虑关键瓶颈。不是每一步都是关键,关键瓶颈不是写之前提前考虑出来的,而是测出来的。很多你以为瓶颈的地方往往不是瓶颈。
3.低效的算法+大量的处理数据两者结合往往是导致效率低下的根本原因,而函数调用,拆分函数等不是。JAVA初学者喜欢怀疑函数调用,C++派则彻底怀疑继承结构和堆上的数据,很有意思的现象。即使低效的算法处理小量数据也没必要优化,e.g.冒泡排序和快速排序在排少量数据的时候的性能差异不需要考虑。

大家说说自己的看法。

P.S.编程里面真的有很多不符合直觉的结论。比如边开发边考虑性能优化是否必要,比如添加人手是否能提高项目进度,真的是很有意思。
分享到:
评论
135 楼 bitray 2010-12-31  
ouchxp 写道
bitray 写道
第一种链接其实是在欺骗自己。这个根本就是一个字符串。jvm必然会进行优化。你要是用变量进行连接你试试?马上就不是一个性能级别。

平常项目中这样的SQL很多. 为了可读性所以才不写成一个字符串. 而是写成拼接的方式. 但是代码规范要求必须用StringBuilder.
select *
from xxxx
where xxxxx
and xxxxx
我说明了是常量拼接. 纠缠变量神马的最讨厌了.
bitray 写道
我不反对你说的新手容易产生误区,但是其实良好的编程习惯和严格的步骤,总是对人成长有好处的。多思考一下,总比少想一点要好嘛。虽然容易造成过度设计,但是一旦走出来就会豁然开朗。

我没说不让新手思考哇....你怎么得出这个结论的呢?
效率问题是就事论事...我的主张是不能一刀切...
强制使用StringBuilder妄图优化.才会把人套在框框里而不知道JVM居然还有优化....
抛出异常的爱 写道
行数不上千的string 拼接就是浮云怎么简单怎么来

抛哥说的对. 没见过几行SQL拼接还能影响多大系统性能的.


呃,或许小弟表达有所不明确。我没有别的意思的,真的。就是说可能想多了有时候容易迷糊,有时候容易顿悟。呵呵
如果表达不清楚的地方,兄弟海涵
134 楼 bitray 2010-12-31  
ouchxp 写道
bitray 写道
赞成2楼和三楼的观点。虽然可能平时大家注意的并不是真正的性能瓶颈。但是如果不重视自己代码的书写规范和简洁,那么写出来的代码就是隐藏的瓶颈,是你最后很难优化出来的东西。有习惯的程序员用stringbuffer和stringbuilder,但是如果是不重视,就会有人用+连接,在多处,一定数据量的情况下,都可能产生隐含问题等


JDK自己已经有优化了. 不合理的优化反而会降低效率
比如字符串常量拼接
String str ="aaa" + "bbb" +"ccc" + "ddd";

StringBuilder sb = new StringBuilder();
sb.append("aaa");
sb.append("bbb");
sb.append("ccc");
sb.append("ddd");
String str = sb.toString();

哪种效率高? 答案是第一种. 对于新手来说想优化很容易适得其反.
反编译看一下就知道为什么了.


另付
    public static void main(String[] args) {
        String a = "";
        long c1 = System.currentTimeMillis();
//        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 10000000; i++) {
            a += "1";
//            sb.append("1");
        }
        long c2 = System.currentTimeMillis();
        System.out.println(c2 - c1);
//        System.out.println(a);
//        System.out.println(sb.toString());
    }
这段代码,请分别注释执行,看下效果。
小弟测试,sb 是258到300毫秒之间,+连接执行了1分钟还没有完事。
不知道是不是我机器有所影响,但是可以见。变量链接是有所影响的。如果你那么写,是在欺骗自己,却无法欺骗虚拟机的。当然我不是有什么特殊的想法,就是说,在某些情况,这是很可能的。我过去做过银行的数据处理。1000万以上的数据很平常,其实api对性能,也是很明显的。所以,如果能连接,最好还是用sql去链接啊。小弟水平有限,耳朵也软,千万别拍砖
133 楼 ouchxp 2010-12-31  
bitray 写道
第一种链接其实是在欺骗自己。这个根本就是一个字符串。jvm必然会进行优化。你要是用变量进行连接你试试?马上就不是一个性能级别。

平常项目中这样的SQL很多. 为了可读性所以才不写成一个字符串. 而是写成拼接的方式. 但是代码规范要求必须用StringBuilder.
select *
from xxxx
where xxxxx
and xxxxx
我说明了是常量拼接. 纠缠变量神马的最讨厌了.
bitray 写道
我不反对你说的新手容易产生误区,但是其实良好的编程习惯和严格的步骤,总是对人成长有好处的。多思考一下,总比少想一点要好嘛。虽然容易造成过度设计,但是一旦走出来就会豁然开朗。

我没说不让新手思考哇....你怎么得出这个结论的呢?
效率问题是就事论事...我的主张是不能一刀切...
强制使用StringBuilder妄图优化.才会把人套在框框里而不知道JVM居然还有优化....
抛出异常的爱 写道
行数不上千的string 拼接就是浮云怎么简单怎么来

抛哥说的对. 没见过几行SQL拼接还能影响多大系统性能的.
132 楼 抛出异常的爱 2010-12-31  
bitray 写道
ouchxp 写道
bitray 写道
赞成2楼和三楼的观点。虽然可能平时大家注意的并不是真正的性能瓶颈。但是如果不重视自己代码的书写规范和简洁,那么写出来的代码就是隐藏的瓶颈,是你最后很难优化出来的东西。有习惯的程序员用stringbuffer和stringbuilder,但是如果是不重视,就会有人用+连接,在多处,一定数据量的情况下,都可能产生隐含问题等


JDK自己已经有优化了. 不合理的优化反而会降低效率
比如字符串常量拼接
String str ="aaa" + "bbb" +"ccc" + "ddd";

StringBuilder sb = new StringBuilder();
sb.append("aaa");
sb.append("bbb");
sb.append("ccc");
sb.append("ddd");
String str = sb.toString();

哪种效率高? 答案是第一种. 对于新手来说想优化很容易适得其反.
反编译看一下就知道为什么了.


第一种链接其实是在欺骗自己。这个根本就是一个字符串。jvm必然会进行优化。你要是用变量进行连接你试试?马上就不是一个性能级别。
我不反对你说的新手容易产生误区,但是其实良好的编程习惯和严格的步骤,总是对人成长有好处的。多思考一下,总比少想一点要好嘛。虽然容易造成过度设计,但是一旦走出来就会豁然开朗。

PS,其实我也是新手没工作3,4年。我没有痴迷到研究哪个API更好,但是也希望写出来更简洁的代码

行数不上千的string 拼接就是浮云怎么简单怎么来

if(log.isDebug()){
   log.debug("xxxx"+bean+"xxxxx");
}

像这样的代码删了吧...不然恶心的饭都要吐出来
131 楼 bitray 2010-12-30  
ouchxp 写道
bitray 写道
赞成2楼和三楼的观点。虽然可能平时大家注意的并不是真正的性能瓶颈。但是如果不重视自己代码的书写规范和简洁,那么写出来的代码就是隐藏的瓶颈,是你最后很难优化出来的东西。有习惯的程序员用stringbuffer和stringbuilder,但是如果是不重视,就会有人用+连接,在多处,一定数据量的情况下,都可能产生隐含问题等


JDK自己已经有优化了. 不合理的优化反而会降低效率
比如字符串常量拼接
String str ="aaa" + "bbb" +"ccc" + "ddd";

StringBuilder sb = new StringBuilder();
sb.append("aaa");
sb.append("bbb");
sb.append("ccc");
sb.append("ddd");
String str = sb.toString();

哪种效率高? 答案是第一种. 对于新手来说想优化很容易适得其反.
反编译看一下就知道为什么了.


第一种链接其实是在欺骗自己。这个根本就是一个字符串。jvm必然会进行优化。你要是用变量进行连接你试试?马上就不是一个性能级别。
我不反对你说的新手容易产生误区,但是其实良好的编程习惯和严格的步骤,总是对人成长有好处的。多思考一下,总比少想一点要好嘛。虽然容易造成过度设计,但是一旦走出来就会豁然开朗。

PS,其实我也是新手没工作3,4年。我没有痴迷到研究哪个API更好,但是也希望写出来更简洁的代码
130 楼 ironsabre 2010-12-30  
hpjz2005 写道
ironsabre 写道
qianhd 写道
对于新手 写的时候动动脑子 别写出内存泄漏的代码 就谢天谢地了

有些人习惯性的爱写内存泄漏的代码
真不知道怎么想的


我觉得新手想要写出内存泄漏的代码是很难的,或者说你让他写一段内存泄漏的代码他都写不出来。要不你写一个试试?

int [] i =new int[1000000000];


说的就是你,你写不出来。
129 楼 hpjz2005 2010-12-30  
ironsabre 写道
qianhd 写道
对于新手 写的时候动动脑子 别写出内存泄漏的代码 就谢天谢地了

有些人习惯性的爱写内存泄漏的代码
真不知道怎么想的


我觉得新手想要写出内存泄漏的代码是很难的,或者说你让他写一段内存泄漏的代码他都写不出来。要不你写一个试试?

int [] i =new int[1000000000];
128 楼 抛出异常的爱 2010-12-07  
qdexception 写道
预分析是用sql过滤某些结果么?

现在需要的数据量也并不大   一次运行也就一千条左右

但问题是要运行3000多遍   而且时间只给15分钟

为什么不能只运行一次把1K多条放到cache中去呢?
127 楼 qdexception 2010-12-07  
预分析是用sql过滤某些结果么?

现在需要的数据量也并不大   一次运行也就一千条左右

但问题是要运行3000多遍   而且时间只给15分钟
126 楼 抛出异常的爱 2010-12-07  
qdexception 写道
抛出异常的爱 写道
qdexception 写道
ouchxp 写道
qdexception 写道

俺以前写的一个功能,是每次遍历都要查询出几个表的相关数据,然后经过逻辑判断再插入和更新表。
先查询出所有需要的数据分别放入不同集合类,再遍历集合类去做判断,把插入或更新的条件放入集合类X,再遍历X去做批量的update操作吗?

大批量复杂数据处理就写PL/SQL,不想放在PL/SQL里就用缓存.上内存数据库.
如果程序要求实时性不高,直接用select update语句可以做到批量的处理.
好好考虑下是否是数据库或程序逻辑设计不合理.


前几天又有需求优化那个功能(其实就是一个比较复杂的业务算法)

那个功能的大概需求是:加载一个拓扑结构,根据N条规则进行分析后,将分析后的数据插入数据库。

用了2种方法实现:
1,一次性关联了3,4张千万数据量的表查出所有能用到的数据,之后进行相关操作后插入。
2,不论是拓扑还是关联的其他表,都是需要数据的时候现去查,之后进行相关操作后插入。

第一种方法中,那一条sql要运行接近2秒才能出结果,最后经测试,性能跟第二种差不多,对数据库压力稍微小点。

但是现在的需求是,要求在15分钟以内完成3000多次流程:运行我写的这个算法前要现进行文件的写入操作(约1千行的xml文件),之后还要读取这个文件。

后来开了20个线程同时跑,貌似还满足不了这个需求,搞的现在也头晕脑胀的。

你有碰到过类似的情况么? 这种情况一般都是怎么解决的? 有什么好的方案没?

1.流程中还有没有可以合并的余地.?
比如查寻一条sql 提出更多的数据
把巨量的数据变成内存中的数据.
整理变更后
批量更新.
2.不能合并的流程的话可以尝试使用更好的sql 很多人喜欢写200行带逻辑的sql
提高硬件也是一种办法.


1,现在可以用一条sql查出一次用的数据,但问题是3000多次要15分钟内执行完的话,只运行这条sql时间都跟不上。

2,现在只能想办法优化sql了,不知道千万级数据量的3表左连效果一般怎么实现比较快?

预分析
将你需要的数据
预分析成少量的数量.
之后在少量数据中查找
125 楼 qdexception 2010-12-07  
抛出异常的爱 写道
qdexception 写道
ouchxp 写道
qdexception 写道

俺以前写的一个功能,是每次遍历都要查询出几个表的相关数据,然后经过逻辑判断再插入和更新表。
先查询出所有需要的数据分别放入不同集合类,再遍历集合类去做判断,把插入或更新的条件放入集合类X,再遍历X去做批量的update操作吗?

大批量复杂数据处理就写PL/SQL,不想放在PL/SQL里就用缓存.上内存数据库.
如果程序要求实时性不高,直接用select update语句可以做到批量的处理.
好好考虑下是否是数据库或程序逻辑设计不合理.


前几天又有需求优化那个功能(其实就是一个比较复杂的业务算法)

那个功能的大概需求是:加载一个拓扑结构,根据N条规则进行分析后,将分析后的数据插入数据库。

用了2种方法实现:
1,一次性关联了3,4张千万数据量的表查出所有能用到的数据,之后进行相关操作后插入。
2,不论是拓扑还是关联的其他表,都是需要数据的时候现去查,之后进行相关操作后插入。

第一种方法中,那一条sql要运行接近2秒才能出结果,最后经测试,性能跟第二种差不多,对数据库压力稍微小点。

但是现在的需求是,要求在15分钟以内完成3000多次流程:运行我写的这个算法前要现进行文件的写入操作(约1千行的xml文件),之后还要读取这个文件。

后来开了20个线程同时跑,貌似还满足不了这个需求,搞的现在也头晕脑胀的。

你有碰到过类似的情况么? 这种情况一般都是怎么解决的? 有什么好的方案没?

1.流程中还有没有可以合并的余地.?
比如查寻一条sql 提出更多的数据
把巨量的数据变成内存中的数据.
整理变更后
批量更新.
2.不能合并的流程的话可以尝试使用更好的sql 很多人喜欢写200行带逻辑的sql
提高硬件也是一种办法.


1,现在可以用一条sql查出一次用的数据,但问题是3000多次要15分钟内执行完的话,只运行这条sql时间都跟不上。

2,现在只能想办法优化sql了,不知道千万级数据量的3表左连效果一般怎么实现比较快?
124 楼 抛出异常的爱 2010-12-07  
qdexception 写道
ouchxp 写道
qdexception 写道

俺以前写的一个功能,是每次遍历都要查询出几个表的相关数据,然后经过逻辑判断再插入和更新表。
先查询出所有需要的数据分别放入不同集合类,再遍历集合类去做判断,把插入或更新的条件放入集合类X,再遍历X去做批量的update操作吗?

大批量复杂数据处理就写PL/SQL,不想放在PL/SQL里就用缓存.上内存数据库.
如果程序要求实时性不高,直接用select update语句可以做到批量的处理.
好好考虑下是否是数据库或程序逻辑设计不合理.


前几天又有需求优化那个功能(其实就是一个比较复杂的业务算法)

那个功能的大概需求是:加载一个拓扑结构,根据N条规则进行分析后,将分析后的数据插入数据库。

用了2种方法实现:
1,一次性关联了3,4张千万数据量的表查出所有能用到的数据,之后进行相关操作后插入。
2,不论是拓扑还是关联的其他表,都是需要数据的时候现去查,之后进行相关操作后插入。

第一种方法中,那一条sql要运行接近2秒才能出结果,最后经测试,性能跟第二种差不多,对数据库压力稍微小点。

但是现在的需求是,要求在15分钟以内完成3000多次流程:运行我写的这个算法前要现进行文件的写入操作(约1千行的xml文件),之后还要读取这个文件。

后来开了20个线程同时跑,貌似还满足不了这个需求,搞的现在也头晕脑胀的。

你有碰到过类似的情况么? 这种情况一般都是怎么解决的? 有什么好的方案没?

1.流程中还有没有可以合并的余地.?
比如查寻一条sql 提出更多的数据
把巨量的数据变成内存中的数据.
整理变更后
批量更新.
2.不能合并的流程的话可以尝试使用更好的sql 很多人喜欢写200行带逻辑的sql
提高硬件也是一种办法.
123 楼 qdexception 2010-12-07  
ouchxp 写道
qdexception 写道

俺以前写的一个功能,是每次遍历都要查询出几个表的相关数据,然后经过逻辑判断再插入和更新表。
先查询出所有需要的数据分别放入不同集合类,再遍历集合类去做判断,把插入或更新的条件放入集合类X,再遍历X去做批量的update操作吗?

大批量复杂数据处理就写PL/SQL,不想放在PL/SQL里就用缓存.上内存数据库.
如果程序要求实时性不高,直接用select update语句可以做到批量的处理.
好好考虑下是否是数据库或程序逻辑设计不合理.


前几天又有需求优化那个功能(其实就是一个比较复杂的业务算法)

那个功能的大概需求是:加载一个拓扑结构,根据N条规则进行分析后,将分析后的数据插入数据库。

用了2种方法实现:
1,一次性关联了3,4张千万数据量的表查出所有能用到的数据,之后进行相关操作后插入。
2,不论是拓扑还是关联的其他表,都是需要数据的时候现去查,之后进行相关操作后插入。

第一种方法中,那一条sql要运行接近2秒才能出结果,最后经测试,性能跟第二种差不多,对数据库压力稍微小点。

但是现在的需求是,要求在15分钟以内完成3000多次流程:运行我写的这个算法前要现进行文件的写入操作(约1千行的xml文件),之后还要读取这个文件。

后来开了20个线程同时跑,貌似还满足不了这个需求,搞的现在也头晕脑胀的。

你有碰到过类似的情况么? 这种情况一般都是怎么解决的? 有什么好的方案没?
122 楼 sam_kee 2010-12-04  
喜欢javaeye
121 楼 ouchxp 2010-11-19  
qdexception 写道

俺以前写的一个功能,是每次遍历都要查询出几个表的相关数据,然后经过逻辑判断再插入和更新表。
先查询出所有需要的数据分别放入不同集合类,再遍历集合类去做判断,把插入或更新的条件放入集合类X,再遍历X去做批量的update操作吗?

大批量复杂数据处理就写PL/SQL,不想放在PL/SQL里就用缓存.上内存数据库.
如果程序要求实时性不高,直接用select update语句可以做到批量的处理.
好好考虑下是否是数据库或程序逻辑设计不合理.
120 楼 aws 2010-11-19  
ironsabre 写道
qdexception 写道
ouchxp 写道
新手避免性能问题,就让他按规范操作就可以.(不许循环里调用数据库....XXXX)


俺是新手,想问一下,如果不在循环里调用数据库,一般都是用什么解决方案?

俺以前写的一个功能,是每次遍历都要查询出几个表的相关数据,然后经过逻辑判断再插入和更新表。

像这样的需求应该怎么实现?

先查询出所有需要的数据分别放入不同集合类,再遍历集合类去做判断,把插入或更新的条件放入集合类X,再遍历X去做批量的update操作吗?

俺做逻辑判断所需要的数据挺多的,例如要先查A表,再查B表,再查C表,再查D表,而A,B,C,D表都超过百万甚至上千万数据。

像这种情况一般都怎么解决呢?望指教!


密集表查询比较适合用pl/sql来解决。


数据库性能高就直接存储过程处理
119 楼 ouchxp 2010-11-19  
http4j 写道

汗,还是你理解错了,我说的不是你啊。是说那个人呢,什么项目经理不让用第一种那个,谁说你了。
我说他理解错了。

了解了 , 通常项目经理不会区分常量拼接和变量拼接的. 因为项目经理也未必知道这其中有什么不同.
118 楼 蔡华江 2010-11-19  
JAVA里面确实有很多不方便的地方,如:
1.基本类型的包装类与基本类型对null的差别处理
2.map,list,set甚至正则,xml等数据没有原生支持的语法糖。
3.集合类型不支持泛型的协变、逆变处理等。
3.闭包。

这可能是我接触的比较多的吧。
但是相对于其它语言要是使用var a = "123";这类的语法来,说实在的我还是喜欢
String a = "123"。
虽然看着臃肿了点,但是能一目了然,至少可以直接地知道a是个什么东西,有什么功能。。
117 楼 抛出异常的爱 2010-11-19  
zhangyou1010 写道
新手还是有可以考虑的地方的吧:

比如Integer i = new Integer(20) ; 和Integer j = Integer.valueOf(20);

虽然简单的这两行不见得会有多少差别,但是这样的代码多了,或者是在循环里面,

是不是...........

Integer i = 20  ;
116 楼 http4j 2010-11-19  
ouchxp 写道
http4j 写道
dsjt 写道
ouchxp 写道

JDK自己已经有优化了. 不合理的优化反而会降低效率
比如字符串常量拼接
String str ="aaa" + "bbb" +"ccc" + "ddd";

StringBuilder sb = new StringBuilder();
sb.append("aaa");
sb.append("bbb");
sb.append("ccc");
sb.append("ddd");
String str = sb.toString();

哪种效率高? 答案是第一种. 对于新手来说想优化很容易适得其反.
反编译看一下就知道为什么了.


我们项目经理不让用第一种

怀疑是你理解错了。String常量才会出现这种情况,变量还是推荐用第二种。

已经说明了是常量拼接的情况,怀疑你是没看到. 如LS所述SQL通常是常量拼接


汗,还是你理解错了,我说的不是你啊。是说那个人呢,什么项目经理不让用第一种那个,谁说你了。
我说他理解错了。

相关推荐

    Oracle性能优化技术内幕

    本书讲述Oracle 性能优化技术。书中对给出的每一种优化方法和措施都从...年以来关于性能优化人们一直认为是正确的某些错误观点和方法提出了批判,令人信服地证明了这些观 点和方法的荒诞,提出了较为正确的观点和方法。

    性能优化.7z

    "性能优化.7z"这个压缩包文件很可能包含了一系列关于性能优化的技术文档、代码示例或者工具,帮助我们理解和实践性能优化的方法。尽管没有具体的标签来细化这些内容,我们可以根据一般性能优化的常见领域进行讨论。 ...

    阿里巴巴Java性能调优实战(2021-2022华山版)+Java架构核心宝典+性能优化手册100技巧.rar

    性能优化手册是一套java性能学习研究小技巧,包含内容:Java性能优化、JVM性能优化、服务器性能优化、数据库性能优化、前端性能优化等。 内容包括但不限于: String 性能优化的 3 个小技巧 HashMap 7 种遍历方式...

    ORACLE SQL性能优化系列

    ORACLE SQL性能优化系列 ORACLE SQL性能优化是数据库管理员和开发者非常关心的一个话题。为了提高数据库的性能,ORACLE 提供了多种优化技术。下面我们将详细介绍 ORACLE SQL 性能优化系列中的一些重要知识点。 一...

    大型网站性能优化实战从前端网络CDN到后端大促的全链路性能优化 带书签完整版

    ### 大型网站性能优化实战从前端网络CDN到后端大促的全链路性能优化 #### 一、基于用户体验的性能优化要素 在现代互联网应用中,用户体验是衡量一个网站成功与否的重要标准之一。良好的用户体验不仅仅体现在美观的...

    Android性能优化.pdf

    【Android性能优化】是Android开发中的重要环节,涵盖了多个关键领域,包括ANR问题解析、crash监控方案、启动速度与执行效率优化、内存优化、耗电优化、网络传输与数据存储优化以及APK大小优化。 **ANR问题解析**是...

    C++性能优化技术导论.pdf

    C++性能优化是一个复杂的主题,它涉及编译器、算法、语言特性、硬件架构以及操作系统等多个层面。性能优化的目标是提升软件执行效率,减少资源消耗,缩短响应时间,以及提高吞吐量。下面将详细介绍这些性能优化的...

    Unity性能优化.pptx

    Unity性能优化 Unity性能优化是指在游戏开发中提高游戏性能的过程,包括优化CPU和GPU的使用,以提高游戏的帧率和画质。下面是 Unity性能优化的相关知识点: 1. Unity性能调试工具及使用方法 Unity提供了多种...

    Java 大型网站性能优化实战从前端网络 CDN 到后端大促的全链路性能优化

    在构建和运行大型Java网站的过程中,性能优化是至关重要的,它直接影响着用户体验、服务器资源的利用率以及业务的可扩展性。本实战指南将探讨从前端网络到后端大促的全链路性能优化策略,旨在提升网站的整体效率。 ...

    《Java程序性能优化》(葛一鸣)PDF版本下载.txt

    根据提供的文件信息,我们可以推断出这是一本关于Java程序性能优化的书籍,作者是葛一鸣,并提供了该书PDF版本的下载链接。虽然没有具体的书籍内容,但基于标题、描述以及通常这类书籍会涉及的主题,我们可以总结出...

    达梦数据库的性能优化收集.pdf

    达梦数据库性能优化 达梦数据库作为国产数据库市场占有率第一的高性能、高可靠性、高安全性、高兼容性大型关系型数据库管理系统,已经成功替代了Oracle,在电力、金融、电子政务、教育等行业领域得到了广泛的应用,...

    Tomcat性能优化

    【文件】:“Tomcat7性能优化调优.docx”可能包含了关于Tomcat7性能优化的具体步骤、最佳实践和案例分析,这对于我们深入理解如何优化Tomcat7非常有价值。 以下是一些可能的Tomcat性能优化知识点: 1. **内存配置*...

    性能优化PPT.pdf

    ### 性能优化的核心概念与实践 #### 一、什么是性能优化? 性能优化是指通过一系列技术和方法提升系统或应用程序在处理任务时的速度、效率及稳定性等指标的过程。它旨在充分发挥硬件资源的优势,同时减少不必要的...

    性能优化-网站性能监测与优化

    Web前端性能优化数据 性能优化Web前端性能优化数据 性能优化Web前端性能优化数据 性能优化Web前端性能优化数据 性能优化

    【超级好】C++应用程序性能优化.pdf

    C++应用程序性能优化C++应用程序性能优化

Global site tag (gtag.js) - Google Analytics