java - 来自 InputStream 的编年史字节

标签 java performance chronicle low-level-io chronicle-bytes

我正在尝试使用萨克斯管将 json 动态解析为 protobuf 消息,并希望避免为每个响应创建字符串实例。

为此,我需要从 InputStream(由 apache http 实体提供)创建 Bytes 实例。

我正在挖掘资源有一段时间了,但找不到方法...有什么建议吗?

最佳答案

有两种方法可以做到这一点。

// reuse a string builder if the String cannot be pooled easily
stringBuilder.setLength(0);
bytes.parseUTF(stringBuilder, StopCharTesters.ALL);

或者你可以使用内置的字符串池

String s = bytes.parseUTF(StopCharTesters.ALL);

如果可能的字符串数量相对较少(至少在大多数情况下),这会很有效

关于java - 来自 InputStream 的编年史字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33479138/

相关文章:

java - 使用 Moxy 处理动态元素名称

css - #parent>*/asterisk 与#parent>div

java - 在本地上下文中调用带注释的无状态 EJB 3 Remote

java - 填充值大小变化较大的 ChronicleMap 时出现 IllegalArgumentException

java - OpenHFT/Chronicle-Values 中的 @Array(length= ?) 注解如何使用

java - 用于查看编年史队列/ map 内容的 UI/实用程序

java - 将 CSV 文件导入 Java

java - Java 的最佳 CLI 解析器

java - 如何创建一个具有绝对值的 java.util.Date 字段而不改变值的时区偏移?

java - jmap/jhat 与 jVisualVM