我写了一个处理HTML的小程序,用了neko库,生成Document对象后做分析处理。整个程序在Windows下运行一切OK,到了Linux服务器上,却在提取URL时特别卡(比某些贴子里提到的1:10还夸张,要卡老半天)。
URL的提取我先是用的getElementsByTagName('A'),后面怀疑当A标签多达上千个时这个方法是不是有性能问题,就改成了遍历,结果还是一样的。
但也不一定是这一句本身卡住。提取出来的URL生成java.net.URL对像,放在一个Set里。怀疑过Set过大内存不足,但我一来试过启动时加大内存,二来我把程序改成了每一百个就提交一次并清空Set,都不见效果。
这个小程序没有多线程(neko 包里有没有不清楚,但似乎它的工作完成的比较顺利,应该与它无关)。
Linux环境为CentOS 5 64bit, Sun JDK 1.6, SELinux Permit, Tomcat运行良好。
看别人有因为系统自带了 JDK 1.4且默认用了这个导致速度很慢的,我的系统里找不到其它JDK,java -version也是正确的。
请高手们给个思路吧,我也计划找个性能分析工具看看更具体的东西。只是这么个小程序,居然弄到这么麻烦……