作者masan22305 (海豹)
看板java
标题[JSP ] Jsp呼叫Java程式(内含shell) 效率问题
时间Thu Nov 13 14:42:18 2014
各位前辈好
小弟最近碰到一个吊诡的事情,想了好几天都解决不了
问题叙述:
我用Jsp去呼叫Java的一个method起来跑, 这个java是对参数做处理之後
在呼叫sh档起来跑(win7系统, 安装Cygwin)
为了测试问题所在, 其中一个版本是呼叫sh档, 另外一个版本是呼叫bat
但是效率上就出现极大的差异
--------------------------------------------------------------
Jsp -> Java -> bat 1秒
-> sh 50秒!
Java -> bat 1秒
-> sh 1秒
--------------------------------------------------------------
部分程式码:
1. bat&sh档内容都是很简单的指令, 应不是指令过於复杂所造成的效率问题
echo "1234" > 1
2. Jsp端呼叫Java程式
<%
Test t = new Test();
String result = t.method(参数1, 参数2, ...);
%>
<%= result %>
3. Java程式呼叫sh档
Process p = Runtime.getRuntime().exec( shpath ); //shpath是shell档路径
p.waitFor();
--------------------------------------------------------------
简单看过整体流程, 程式就是碰到要执行sh档的时候会卡住一段时间约40秒
接着sh档执行起来就会很快。
麻烦各位前辈帮忙提津QQ
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.121.197.112
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/java/M.1415860942.A.170.html
※ 编辑: masan22305 (140.121.197.112), 11/13/2014 14:42:41
※ 编辑: masan22305 (140.121.197.112), 11/13/2014 15:54:55
1F:推 pttnews: 为什麽bat 要呼叫 sh? 11/13 16:40
2F:→ pttnews: bat 及 sh 内容? 有无传参数进入或是取得回传值? 11/13 16:43
※ 编辑: masan22305 (140.121.197.112), 11/13/2014 16:58:32
3F:→ masan22305: 抱歉, 说明不够详细, 一个版本是呼叫bat另一版呼叫sh 11/13 16:58
4F:→ masan22305: 但是执行的速度却差很多, 内容都是很简单的指令 11/13 16:59
5F:→ masan22305: bat跟sh的内容都是 echo "1234" > 1 而已 11/13 17:00
6F:→ masan22305: 并无传入参数与取得回传值 11/13 17:00
※ 编辑: masan22305 (140.121.197.112), 11/13/2014 17:01:07
※ 编辑: masan22305 (140.121.197.112), 11/13/2014 17:01:34
7F:推 luoqr: echo 执行时间印一下呀~XD 11/13 17:58
8F:推 pttnews: 我记得呼叫sh 要指定shell 我猜会不会是这个原因 11/13 21:25
※ 编辑: masan22305 (203.121.239.109), 11/14/2014 13:16:21
9F:→ bitlife: 不负责任猜测,时间长的那个,执行一开始有隐含的dns查询, 11/14 15:07
10F:→ bitlife: timeout之後才开始执行原po的sh内echo指令 11/14 15:08