使用 ByteArrayStream 时 Java Applet 速度很慢

标签 java caching applet iostream

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

enter image description here

每个转换大约需要 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 修复了问题

关于使用 ByteArrayStream 时 Java Applet 速度很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6466557/

相关文章:

Java 字符串扫描器下一行输入字符串不符合预期

java - 如何使用 Kotlin 构建 cordova 项目

java - JPA 在 2 个不同模式和 session 之间复制项目

xml - 缓存 SOAP 响应

c - 分配 "weak"内存页

java - 我的碰撞检测在 Java 小程序中生成低帧率

java - 测试 BigDecimal 是否可以更改其他 BigDecimal 的整数部分

java - 缓存/优化从数据库加载数据的动态 View

java - 基于 Applet 的 Jasper 报告!

java - IE 中的 Applet 生命周期