首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Applet在使用ByteArrayStream时速度很慢

Java Applet在使用ByteArrayStream时速度很慢
EN

Stack Overflow用户
提问于 2011-06-24 18:30:18
回答 1查看 182关注 0票数 1

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

每次转换大约需要3-4秒,但是如果我禁用缓存,它只需要毫秒。我不知道为什么会发生这种情况,我唯一的猜测是Java正在缓存每个转换的ByteArrayStream,这使得它变得更慢,但我还没有想出如何处理这个问题。有没有比ByteArray流更快的选择呢?

谢谢。

代码:

代码语言:javascript
复制
{
..

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());
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-27 19:20:19

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6466557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档