繁体   English   中英

使用ByteArrayStream时Java Applet变慢

[英]Java Applet slow when using ByteArrayStream

我正在自己的名为“ V6BasicCar”的类的对象中转换xml,我遇到的问题是,如果启用Java缓存(在Java控制面板中):

在此处输入图片说明

每次转换大约需要3-4秒,但是如果我禁用缓存,则只需几毫秒。 我不知道为什么会这样,我唯一的猜测是Java每次转换都在缓存ByteArrayStream,这使其变慢了,但是我还没有弄清楚如何处理这个问题。 有没有比ByteArray Stream更快的替代方法?

谢谢。

编码:

{
..

ByteArrayOutputStream out = new ByteArrayOutputStream();

//1. transform xml    
transform(getSourceXml(_intype), out);

//2. convert to bean
XsdConverter<V6BasicCar> v6BasicCarXsdConverter = new XsdConverter<V6BasicCar>(V6BasicCar.class);     
    /* 
    "getObject()" takes about 2 secs 
    */
V6BasicCar newV6BasicCar = v6BasicCarXsdConverter.getObject(convert(out));

..
}


 protected InputStream getSourceXml(final CsvWrapperMiddle _csvV6Car) throws IOException, JAXBException
{
    ByteArrayOutputStream out = new ByteArrayOutputStream();   

        /* 
        "getXml" takes about 2 secs 
        */
    xsdConverter.getXml(_csvV6Car.getExternalBean(), out); 
    InputStream output = convert(out);   
    return output;
}

protected InputStream convert(ByteArrayOutputStream out)
{
    return new ByteArrayInputStream(out.toByteArray());
}

问题出在XsdConverter内部,特别是在JAXB中。 将“ com.sun.xml.bind.v2.runtime.JAXBContextImpl.fastBoot”设置为true可解决此问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM