随笔-124  评论-194  文章-0  trackbacks-0
 
     摘要: 讲了SED的用法,特别是换行c\命令,以及多行替换。  阅读全文
posted @ 2009-09-01 10:12 我爱佳娃 阅读(3959) | 评论 (1)编辑 收藏
这里有个帖子论证HIBERNATE在批量插入时性能下降,以及一些解决方式。

其核心在于批量插入时,积攒一定量后就写库,并清除SESSION里的第一级缓存,以免后续插入操作受缓存查找而影响效率:

if ( j % batchNum2 == 0 ) {//执行物理批量插入
                                   session.flush();
                         session.clear();            

}


基于JPA的事务操作,SESSION不可见,此时,需要直接调用EntityManager的flush和clear。
但EntityManager也是被封装入JpaDaoSupport,实际的EntityManager对象也不容易取得。
此时可以用其JpaTemplate成员的execute方法来实现这两个操作:

        getJpaTemplate().execute(new JpaCallback() {
            
public Object doInJpa(EntityManager em) throws PersistenceException {
                em.flush();
                em.clear();
                
return null;
            }
        }, 
true);

在我这里测试结果:
没有定期调用以上方法时,插入50个记录要2秒,并且随着记录增多,时间越来越长。
每插入50个调用以上方法后,插入50个记录小于300毫秒,且不随记录个数线性增长。
posted @ 2009-07-16 21:20 我爱佳娃 阅读(6701) | 评论 (0)编辑 收藏
Linux 运行的时候,是如何管理共享库(*.so)的?在 Linux 下面,共享库的寻找和加载是由 /lib/ld.so 实现的。 ld.so 在标准路经(/lib, /usr/lib) 中寻找应用程序用到的共享库。

但是,如果需要用到的共享库在非标准路经,ld.so 怎么找到它呢?

目前,Linux 通用的做法是将非标准路经加入 /etc/ld.so.conf,然后运行 ldconfig 生成 /etc/ld.so.cache。 ld.so 加载共享库的时候,会从 ld.so.cache 查找。

传统上, Linux 的先辈 Unix 还有一个环境变量 - LD_LIBRARY_PATH 来处理非标准路经的共享库。ld.so 加载共享库的时候,也会查找这个变量所设置的路经。但是,有不少声音主张要避免使用 LD_LIBRARY_PATH 变量,尤其是作为全局变量。这些声音是:
* LD_LIBRARY_PATH is not the answer - http://prefetch.net/articles/linkers.badldlibrary.html
* Why LD_LIBRARY_PATH is bad - http://xahlee.org/UnixResource_dir/_/ldpath.html
* LD_LIBRARY_PATH - just say no - http://blogs.sun.com/rie/date/20040710
解决这一问题的另一方法是在编译的时候通过 -R<path> 选项指定 run-time path。
posted @ 2009-06-11 09:52 我爱佳娃 阅读(821) | 评论 (0)编辑 收藏
     摘要: 今天搞了一天,JAVA调用一个PERL程序,得不得就退不出,千试万试,LOG精细到逐行,知道在哪停住了,但打死不知道为什么。
后来吃个饭都放弃了,居然又找到答案,要没看到它,那真以为里面有鬼了。  阅读全文
posted @ 2009-05-15 21:04 我爱佳娃 阅读(14188) | 评论 (4)编辑 收藏
如需要,设置PROXY:
export http_proxy=http://127.0.0.1:3128

启动,然后设置MIRROR,直接安装:
perl -MCPAN -e shell
cpan> o conf urllist set http://www.perl87.cn/CPAN/
cpan> install JSON
posted @ 2009-05-12 16:31 我爱佳娃 阅读(1181) | 评论 (0)编辑 收藏

方法1:采用String的split,验证代码如下:
import java.util.Arrays;
public class TestSplit {
 public static void main(String[] args) {
  String orignString = new String("5,8,7,4,3,9,1");
  String[] testString = orignString.split(",");
  int[] test = { 0, 0, 0, 0, 0, 0, 0 };
  //String to int
  for (int i = 0; i < testString.length; i++) {
   test[i] = Integer.parseInt(testString[i]);
  }
  //sort
  Arrays.sort(test);
  //asc sort
  for (int j = 0; j < test.length; j++) {
   System.out.println(test[j]);
  }
  System.out.println("next ");
//  desc
     for (int i = (test.length - 1); i >= 0; i--) {
      System.out.println(test[i]);
     }
 }
}
方法2:采用StringTokenizer

import java.util.Arrays;
import java.util.StringTokenizer;
public class SplitStringTest {
 public static void main(String[] args) {
  String s = new String("5,8,7,4,3,9,1");
  int length = s.length();
  //split   s with ","
  StringTokenizer commaToker = new StringTokenizer(s, ",");
  String[] result = new String[commaToker.countTokens()];
  int k = 0;
  while (commaToker.hasMoreTokens()) {
   result[k] = commaToker.nextToken();
   k++;
  }
  int[] a = new int[result.length];
  for (int i = 0; i < result.length; i++) {
   a[i] = Integer.parseInt(result[i]);
  }
  //sort
  Arrays.sort(a);
  //asc sort
  for (int j = 0; j < result.length; j++) {
   System.out.println(a[j]);
  }
 }
}
posted @ 2009-04-24 13:07 我爱佳娃 阅读(461) | 评论 (0)编辑 收藏
     摘要: mysqldump 是采用SQL级别的备份机制,它将数据表导成 SQL 脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法。  阅读全文
posted @ 2009-03-29 17:02 我爱佳娃 阅读(2514) | 评论 (0)编辑 收藏
     摘要: 在EXT里如果定义类和扩展类  阅读全文
posted @ 2009-03-03 15:57 我爱佳娃 阅读(1073) | 评论 (1)编辑 收藏
update user set password = password ('xxxx') where user = "root";
grant all privileges on *.* to root@'%' identified by 'xxxx';

其它参数的例子:
grant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by '123';

  给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。


要重启一次MYSQL才能使本地用户密码生效:

/usr/local/mysql/support-files/mysql.server restart


posted @ 2009-02-12 14:31 我爱佳娃 阅读(1646) | 评论 (0)编辑 收藏
由于EXTJS是用XMLHTTP来LOAD的,所以在本地会看到一直LOADING的画面。应该把它放到一个WEB服务器上,以HTTPD为例:

编辑文件:
/etc/httpd/conf.d/extjs.conf

内容如下:
Alias /extjs "/point/to/real/dir/ext/"

<Directory 
"/point/to/real/dir/ext/">
    Options Indexes
    AllowOverride AuthConfig Options
    Order allow
,deny
    Allow from all
</Directory>

重启httpd:
service httpd restart

这样访问http://hostip/extjs/docs/index.html就能在本地看EXTJS的文档了。


注,经下面同学回复,有不用架设服务器的办法,我搜了一下,供大家参考,本人未尝试:
http://www.blogjava.net/mengyuan760/archive/2008/04/21/194510.html

posted @ 2009-02-05 11:52 我爱佳娃 阅读(2439) | 评论 (2)编辑 收藏
仅列出标题
共13页: 上一页 1 2 3 4 5 6 7 8 9 下一页 Last