如何加速 Java 应用程序?
我正在开发一个 Java 应用程序,它逐行解析 Cobol 文件,从中提取必要的数据并填充到 DB2 数据库中。
如果要解析的文件更多,则应用程序需要超过 24 小时才能完成,这是不可接受的。
所以我在一个单独的线程中做了一些表格填充以加快速度..eg
ArrayList list = (ArrayList)vList.clone();
ThreadPopulator populator = new ThreadPopulator(connection, list, srcMbr);
Thread thread = new Thread(populator);
thread.run();
return;
And ThreadPopulator class is implementing Runnable interface and run method as
public void run()
{
try
{
synchronized (this)
{
int len = Utils.length(list);
for (int i = 0; i < len; i++)
{
.....
stmt.addBatch();
if ((i + 1) % 5000 == 0)
stmt.executeBatch(); // Execute every 5000 items.
}
}
}
catch (Throwable e)
{
e.printStackTrace():
}
finally
{
if (list != null)
list.clear();
}
}
注意:需要使用克隆,这样下一个线程就不会消失条目。
我的想法是否正确?
请建议我,我必须选择什么方式来加速我的应用程序超过数千个 Cobol 文件。