随笔:93 文章:11 评论:22 引用:0
首页 发新随笔
发新文章 联系 聚合管理

我的评论

呃. 停更4年了..
要不要写的这么透彻. 强~
可以强制加载后 close session.
--------
此外直接用HibernateTemplate.getSessionFactory.getCurrentSession
应该是可以托管给spring管理的.
re: 提交Bug及功能建议 redcoatjk 2013-08-27 23:23  
貌似博文无法设置为仅自己可见?
仔细看了下你贴出的系统状态结果,发现你的并发并不大,只是操作比较频繁罢啦
看不到具体的实际环境情况,你试下按如下方法优化下吧:


稍适当增大一点query_cache_size;

若你的这台服务器是专给msyql用的,不会跑其他业务,那修改如下参数:
innodb_flush_log_at_trx_commit=0 (若你允许存在丢失最近部分事务的前提下)
innodb_log_buffer_size=8M
innodb_buffer_pool_size=2560M
innodb_log_file_size=512M

适当系统空闲时,对一些系统关键的大表执行:
analyze table tb_name;
optimize table tb_name;

若问题还没得到解决:
则设置log_slow_queries、long_query_time启动“慢查询日志”抓取问题语句

用explain分析问题语句,确定索引是否正常利用上。

-----------------------------------------------
通过上面的一系列还得不到解决:
那检查系统的可能存在瓶颈的业务处理逻辑是否还存在优化的余地;
考虑升级硬件(更快的硬盘、合理的raid方式、更快的cpu);
考虑系统架构的变更;

大概就先写这么多吧。


re: ThreadLocal的几种误区 redcoatjk 2011-11-02 13:13  
HibernateUtil工具类中一般都有写closeSession的方法.
将线程对应的变量ThreadLocal中的session置为null.
这样归还线程池后又是干净的了.
re: LOG4J 入门 redcoatjk 2010-08-22 20:20  
如何在Java中应用final类 :
1 什么是final类
API中的某些类,如String,以及Math等,就是final类的典型例子。虽然在Java编程中并不经常使用final类和final方法,但它们有着与众不同的特点,即final类不能被继承,不能被覆盖,以及final类在执行速度方面比一般类快。下面对final类和final方法的概念和编程技术分别加以讨论,最后解释为什么final类可以提高执行速度。
2 不能继承final类
有时在程序需要对继承加以限制。例如某些处理特殊运算和操作的类,为了安全理由,不允许被其他类所继承。final类没有子类,即它处于继承链的尾部,或者除了自动继承Object之外,它们是独立存在的支持类,例如执行密码管理的类,处理数据库信息的管理类等等。
使用final类的另外一个理由是执行速度。由于它的方法不能够被覆盖,所以其地址引用和装载在编译期间完成,而不是在运行期间由JVM进行复杂的装载,因而简单和有效。所以如果没有必要,或者不存在有继承的可能性时,尽量使用final类。当然,在API类库中不多使用final类是因为它们是标准程序,希望在实际软件开发中得以广泛使用。而具体的应用软件开发则不同于标准库程序开发。
注意final数据和final类的不同。final数据指常量,即其值一旦初始化,就不能改变。而final类则指不能被其他类所继承的类。
3 定义final类
在类名前加以关键字final,这个类就被定义为final类,如:

public final class SomeClass {
...
}

或者,

public final class SomeClass extends SuperClass {
...
}

public final class SomeClass {<br/> ...<br/>}<br/> <br/>或者,<br/> <br/>public final class SomeClass extends SuperClass {<br/> ...<br/>}

当一个类被定义为final时,它的所有方法都自动成为final方法,但不影响对变量的定义。
4 不能覆盖final方法
也可以在超类中定义某个方法为final方法。虽然这个类可以被继承,但子类不能够覆盖final方法。API类中的许多方法,如print()和 println(),以及Math类中的所有方法都定义为final方法。在具体应用软件开发中,一些执行特殊性运算和操作的方法,可以定义为final 方法。在方法的返回类型前加入关键字final,则定义该方法为final,如:

public final String printVersion() { //定义final方法
return version;
}

public final String printVersion() { //定义final方法<br/> return version;<br/>}
5 final参数
final参数的含义如同final变量一样,是常数参数,即当方法接受了这个参数后,其值不能改变。如下代码中定义方法的参数为final:

public void setVerison(final String version) { //定义常量参数
this.version = version;
}

在这个方法中使用如下语句产生语法错误:

version = "other version…"; //非法操作

public void setVerison(final String version) { //定义常量参数<br/> this.version = version;<br/>}<br/> <br/> 在这个方法中使用如下语句产生语法错误:<br/> <br/>version = "other version…"; //非法操作
6 提高执行速度
final类可以提高执行速度主要因为如下原因:
l 不涉及继承和覆盖。
l 其地址引用和装载在编译时完成。
l 在运行时不要求JVM执行因覆盖而产生的动态地址引用而花费时间和空间。
l 与继承链上的一般对象相比,垃圾回收器在收回final对象所占据的地址空间时也相对简单快捷。
但在某些情况下使用final方法并不能取得提高执行速度的结果。因为并不是所有final方法其地址的装载和引用在编译时间完成。
假设类C继承了B,B继承了A,在类A中有final方法。对类C来讲,调用A的final方法的确是inline编译,即装载在编译时间完成;但对A和B 来讲,可能没有调用final方法。而在执行期间,JVM动态装载的方法有可能并不是C所调用的final方法。这种情况下,则不能够取得提高执行速度的结果。当然,如果final方法在编译时间装载到JVM,而且没有在执行期间覆盖的,可以取得inline效益,提高执行速度。
作者建议是:不能仅仅因为考虑追求提高执行速度而使用final类。在程序设计和代码编写时,应首先考虑这个类所执行的任务和安全因素,是否允许有子类。在这个前提下,尽量提高代码的重复应用性是面向对象设计和编程的宗旨。然后考虑是否使用final类和final方法。
投票成功,感谢您的投票
re: Oracle查询约束 redcoatjk 2010-05-27 10:36  
蛮好的
re: [转]程序员职业规划 redcoatjk 2010-03-07 17:24  
不如做别的
re: [转]程序员职业规划 redcoatjk 2009-10-16 17:57  
感触良多.
re: Oracle查询约束[未登录] redcoatjk 2009-08-18 18:45  
..说了不如不说.
re: axis入门之代码篇(1) redcoatjk 2009-05-21 10:34  
很可惜这一段写的有点乱了
re: [转]JDK5新特性汇总(与1.4对照) redcoatjk 2009-05-19 09:00  
COOL~
动手 动脑 你会成为高手
为虾米看不了代码?
好好读书,不读书,让你以后去做程序员!
----这是最近我看到最心酸的话.
和之前javase写的那个动态代理其实差不多.
一样的啦~!
回头看这个就很好理解了.

java的东西一套一套的.
发现越来越多思维的局限了...
代码参见项目:dynamic-proxy
看了那么多网络上的解释.
还是感觉尚学堂的解释最容易懂.
re: [转]Java 静态代理和动态代理 redcoatjk 2009-02-17 22:07  
动态代理 没接触过.看起来有点puzzle
..多看几次吧..
client的写法
把实现UserManagerImpl的UserManager类的实例丢到代理中.
然后再调用代理中的方法.
好了..保存了实现类的贞操了.
T_T... 给我几个不用代理产生悲剧的历史小故事吧...
否则实在很想开骂使用代理的麻烦.
re: Struts2教程8:拦截器概述 redcoatjk 2008-12-28 22:48  
struts2和webwork的拦截器好像有点不一样
如你知道.麻烦介绍一些.THANKS
" WebWork还有一种很方便的不需要配置的别名语法,支持形为name!method.action的映射。如上面的例子中,users!edit.action就会被映射到edit()方法中。"
这句有点不太懂.麻烦解释下~
wait.

写的很好啊.
看了几篇.你这篇写的浅显易懂.
re: WebWork标签库简介[未登录] redcoatjk 2008-12-01 09:40  
果然是很简单
re: ibatis学习(二)--ibatis使用介绍 redcoatjk 2008-11-18 10:07  
写的很好~
@一竿残照.金棣 @ blogJava.net
说的不错..
写的很好 找回了记忆~
谢谢
CALENDER
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(3)

随笔分类(22)

随笔档案(76)

文章分类(12)

文章档案(17)

搜索

  •  

积分与排名

  • 积分 - 249961
  • 排名 - 227

最新评论

评论排行榜


Powered By: 博客园
模板提供沪江博客