Servlet 检索文件为什么 比 php慢这么多
用JDK7的Fils写了一个历遍目录文件的servlet, 利用ajax调用检索出2000个文件,并且显示出所有的文件属性,居然花了6秒多!
而今天用PHP写了一个相同功能,才用100多毫米,怎么差这么远啊?!不是都说JAVA WEB比PHP快吗?
JAVAWEB(Tomcat7)
PHP (apache2)
Linux (ubuntu 12.04)
有这方面经验的同学能告诉一下原因吗?还是想用servlet啦。谢谢
------解决方案--------------------servlet第一次启动会很慢,后面就快了
而且java的强项又不是快
------解决方案--------------------java web比PHP快,一般是指大数据与大并发方面吧
------解决方案--------------------各有各的利弊吧。
------解决方案--------------------
这个就是两种语言的差别了
java是编译型语言,需要编译的,然后执行
而php不需要编译,所以省了一步
其他的就还有一些内部的机制问题了
java除了功能强大之外,还有一个比较出名,就是慢!
------解决方案--------------------
servlet第一次启动会很慢,后面就快了
而且java的强项又不是快
我的试验结果是:servlet第一次会稍为慢点,但第二次也不会快很多,相差1秒左右吧。但问题是PHP一进去就很快,这是为什么呢?难道php有缓冲,而java没有? 有什么办法把servlet的速度提高吗?我服务器基本的功能就是读文件,操作文件,还有就是操作MYSQL,读数,写数等。
请大家给点意见,是用PHP还是servlet呢?谢谢!
那你要考虑了,如果是并发多的话,考虑安全稳定的话,建议servlet
如果就是要快,那就PHP吧
------解决方案--------------------你把servlet里的代码放到jsp页面里试试。虽然不一定有什么用,但是也可以看看执行效率怎么样
------解决方案--------------------代码贴出来看看?我还没见过遍历要遍历6秒的
------解决方案--------------------
public static int total = 0;
public static StringBuffer file_str = new StringBuffer();
public static void main(String[] args) throws FileNotFoundException {
long startTime = System.currentTimeMillis(); // 获取开始时间
listFile(new File("D:\\Cygwin"));
// System.out.println(file_str);
long endTime = System.currentTimeMillis(); // 获取结束时间
System.out.println("程序运行时间: " + (endTime - startTime) + "ms" + ",共计 " + total + " 个文件。");
}
public static void listFile(File file) {
if (file == null
------解决方案--------------------
!file.exists())