任何人都知道更快的方法来做什么java.nio.charset.Charset.decode(..)
/做什么encode(..)
?
它目前是我正在使用的技术的瓶颈之一。
[编辑] 具体来说,在我的应用程序中,我将一个部分从 java 解决方案更改为 JNI 解决方案(因为有一种 C++ 技术比我使用的 Java 技术更适合我的需求)。
此更改导致速度显着下降(以及 cpu 和内存使用量显着增加)。
深入研究我使用的 JNI 解决方案,java 应用程序通过 byte[] 与 C++ 应用程序通信。这些 byte[] 由 Charset.encode(..) 从 java 端生成并传递给 C++ 端。然后,当 C++ 响应带有 byte[] 时,它会在 java 端通过 Charset.decode(..) 进行解码。
对分析器运行此程序,我发现 Charset.decode(..) 和 Charset.encode(..) 与 JNI 解决方案的整个执行时间相比都花费了相当长的时间(我只分析了 JNI 解决方案,因为这是我可以很快完成的事情。一旦我腾出我的日程安排,我将在以后的日期对整个应用程序进行概要分析:-))。
在进一步阅读我的问题后,它似乎是 Charset.encode(..) 和 decode(..) 的一个已知问题,它正在 Java7 中得到解决。但是,由于一些限制,迁移到 Java7 对我来说不是一个选择(目前)。
这就是为什么我在这里问是否有人知道 Java5 解决方案/替代方案(对不起,应该提到这是针对 Java5 的)?:-)