Jsp页面的预编译(已完成)
问题描述
重新部署系统后,jsp需要重新编译。
问题分析
新部署的环境,jsp需要重新编译,也会消耗大量的资源。
问题解决
java -classpath D:\bea\weblogic81\server\lib\weblogic.jar weblogic.jspc -encoding GBK -verboseJspc -linenumbers -noImplicitTlds -webapp E:\sun\prpallnew\prpall\SRC\prpins\modules\webapps\prpall  -d d:\temp -keepgenerated  -k其中:D:\bea\weblogic81\server\lib\weblogic.jar对应本地bea下weblogic.jar
E:\sun\prpallnew\prpall\SRC\prpins\modules\webapps\prpall 对应需要预编译的JSP目录
d:\temp 对应预编译结束后 jsp生成的java文件及class文件所存放的路径

解决方案 »

  1.   

    个人觉得性能的杀手锏,就是缓存。
         很多网站都采用memcached,他是一个分布式缓存。其次还有一些,页面静态化,sql优化。  代码的重构等....本人只接触到这些
      

  2.   

    是的,我所接触的也是sql优化,以及页面该成静态的 页面。
      

  3.   

    我遇到的基本是sql的设计优化问题,还有数据库配置参数问题编程语言写法也会带来效率问题,不过没有遇到过很明显的再就是缓存问题了
      

  4.   

    对于普通程序员来说,SQL优化是首当其冲,如查询表时未创建索引、 对大数据量访问未引用缓存,多表查询用外联而不是内联,包括分页不是服务器分页,以及循环操作时未及时释放临时对象等。
      

  5.   

    主要就是sql优化,连接池,还有缓存吧
      

  6.   

    大家把项目里的优化例子说说:数据库的, 中间件的,SQL等等
      

  7.   

    1、js中对于多次使用如if判断时需要用到如下document.getElementById("cIBPFlag").value 值的时候
          使用变量: var cIBPFlag = document.getElementById("cIBPFlag").value;
    2、js中使用对象的属性,尤其是for循环,使用值定义成变量 
             var element_len = allelement.length;
          如connection-min.js文件中的setForm方法,组织1022个数据项,setForm函数的时间从 1187ms 降到 156ms
    3、对数据库的操作使用预编译方式,否则每次数据变化都需要重新编译sql:1、提高       性能;2、安全防止sql注入
            String hql = "select a from PrpCitemCar a where a.id.proposalNo = ?";
           List<PrpCitemCar> prpCitemCarList = this.findByHql(hql,proposalNo);
      

  8.   

    4、java类的代码行不宜过多,尤其是属性过多,在初始化时get,set方法也会消耗性能,
    5、setForm批量提交:yui封装的对象默认将所有数据提交到后台,实际用到的数据仅几项,这种情况下 将需要用到的数据提交即可
    6、jsp注释写法:不同的写法发送到客户端的内容不同。
       <%-- 注释内容 --%>:不会被发送到客户端
       <!-- 注释内容 --> :会被发送到客户端
    7、开发规范的制定,引用文件统一规划,统一风格;
            A:css样式文件的引用,css文件尽量的统一,放到统 
               一的文件夹下;
            B:js文件的引用:尽量的合并,重复文件不要多次引    用
    8、调试代码时的System注意删除;
    9、字符串连接方式写法问题:由StringBuffer(线程安全)改为StringBuilder(线程不安全),
       StringBuffer考虑线程安全,synchronized关键字修饰,考虑同步机制,并发时影响性能
      

  9.   

    服务后台线程阻塞信息抓取方式:
        获取到thread dump信息两种方法:
        A) 命令行方式,登陆22.1.32.164,执行命令: ps -ef | grep java
           找到java进程的进程号,例如:
              weblogic@car3g-4:~/bea/user_projects/domains/prpall2100_8001> ps -ef |grep java
              weblogic 23442 23382 12 01:05 ?    01:32:28 /home/weblogic/jrmc-3.1.0-1.5.0/bin/java -server -Xms4096m -Xmx4096m -XX:Ma
           那么上面的java进程号为23442
           执行命令: kill -3 23442
           执行之后在nohup.out里会生成一段信息,信息在以下两行内容之间
           ===== FULL THREAD DUMP ===============
           ===== END OF THREAD DUMP ===============