我正在使用这个遗留系统,它将大量java对象导出(封送)到一个xml文件。由于数据量大,这个过程需要将近14个小时,我们必须优化这个过程。
立即写入xml标记是手动创建的,并使用使用filewriter的bufferedwriter写入到文件中。以下是当前实现的片段:
BufferedWriter bufferedWriter = null;
try
{
bufferedWriter = new BufferedWriter(new FileWriter(file), 81920);
writeHeader(bufferedWriter);
writeNewLine(bufferedWriter);
writeRootStartTag(bufferedWriter);
for (int i = 0; i < users.length; i++)
{
String user = users[i];
if (user!=null && user.trim().length()>0)
{
String[] xmlForUser = getXMLDataForUser(user, startDate, endDate);
if(xmlForUser!=null && xmlForUser.length>0)
{
for (int j = 0; j < xmlForUser.length; j++)
{
String xml = xmlForUser[j];
write(xml, bufferedWriter);
}
}
}
}
writeRootCloseTag(bufferedWriter);
}
如果我使用jaxb来封送java对象而不是bufferedwriter方法,性能会有显著的提高吗。
(请注意,使用jaxb解组xml文件的任何性能增益都与系统无关,因为另一个系统用于此目的。另外请注意,鉴于公司对第三方库有严格的规定,我不能使用任何第三方库。)
暂无答案!
目前还没有任何答案,快来回答吧!