问题标签 [chronicle-bytes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 来自 InputStream 的编年史字节
我正在尝试使用萨克斯管即时将 json 解析为 protobuf 消息,并希望避免为每个响应创建字符串实例。
为此,我需要从 InputStream(由 apache http 实体提供)创建 Bytes 实例。
我正在挖掘资源一段时间,但找不到这样做的方法......有什么建议吗?
chronicle - 重用 Chronicle Bytes 的 OutputStream
我正在使用采用 OutputStream 的第三方二进制编码器。我从 Marshallable 的 writeMarshallable 方法中检索 OutputStream,类似于:
wire.bytes().outputStream()的实现在每次调用时都会创建一个新的 StreamingOutputStream,这是我希望避免的(当底层 Bytes实际上没有改变时,多余的对象分配)。
也就是说,我正在考虑将 WeakReference 存储到给定的 wire.bytes() 值并检查提供的值引用(即 ==)是否与先前提供的值相同:
所以我的问题是这是否是一种合理的方法,或者你们编年史的人是否有更明智的方法?
谢谢!!
java - 多次同时读取 Chronicle Bytes 作为流
我正在使用 Chronicle Bytes 版本 1.7.22。我想将字节用于堆外缓存和大型媒体(例如图像、视频)的持久性。目前我正在创建字节如下:
或(用于持久性)
我使用 Bytes.outputStream() 编写媒体内容并使用 Bytes.inputStream() 读取媒体内容。但是,我只能读取一次 InputStream。它似乎不支持重置。如何在不分配额外内存的情况下多次同时读取媒体内容?
chronicle - Serialize Java object ByteBuffer using Chronicle Wire
I have been using "javolution" that facilitates me to create Java objects which can be serialized to nio.ByteBuffer that can be further mapped to C structs.
How can I achieve the same using Chronicle Wire?
chronicle - 从 Bytes 中检索 ByteBuffer 对象
我一直在尝试从 Bytes 对象中检索 ByteBuffer (Direct) 对象引用。以下是代码:
我想在创建 ByteBuffer 对象时避免多次分配。因此,想要重用由 Bytes 包装的相同 Bitebuffer。我怎样才能做到这一点?
chronicle - 在 Chronicle Queue Tailer (v5.16.11) 中读取消息不会自动将索引移动到下一个滚动周期
我使用 CQ v5.16.11(带有 openjdk 11)来保存每日滚动周期的数据。这个过程从周日到周五不间断地运行,所以我每周有 5 个 cq4 文件。我运行了 1.5 周,有 8 个文件(第 1 周 3 个,第 2 周 5 个)。
所以我拥有的文件是:
请注意 20181006.cq4 (cycle=17810) 的缺失文件,因为该过程在星期六不运行。
我使用此代码读取数据:
这会正确读取第一周的数据,但不会读取第二周的数据,因为它不会自动滚动到下一个周期。
知道为什么会发生这种情况或如何解决这个问题吗?
这个问题与旧版本的问题类似
日志:
[编辑 1]:
上周末也发生了同样的事情,即,正如预期的那样,10 月 13 日没有新文件。现在我有 10 月 7 日到 10 月 15 日的文件(缺少 10 月 13 日的文件)。如果我这样做tailer.toStart(); while(tailer.readBytes() { ...}
,它只会从 10 月 7 日到 10 月 12 日读取文件,而不会读取 10 月 14 日和 15 日的文件。
[编辑 2]:将问题复制如下 Chronicle-Queue/issues/537
- 设置/库: jvm openjdk 11、Ubuntu 16.04、openhft.affinity/3.1.9、chronicle-map/3.16.0、chronicle-queue/5.16.11、chronicle-bytes/1.16.23、chronicle-core/1.16.20 ,编年史线/1.16.16,编年史线程/1.16.3,jna/4.4.0
- 脚步:
- 启动 WriterProcess - 让它完成。
- 启动 ReaderProcess - 查看 5 个打印语句。
- 停止 ReaderProcess
- 等待一段时间 - 10 分钟。
- 再次启动 WriterProcess - 让它完成或继续运行这个过程。
- 启动 ReaderProcess - 它只打印前 5 个打印语句,此后不打印任何内容。即使 WriterProcess 正在运行/写入以排队,该进程中的尾部也不会向前移动。
chronicle - 编年史字节共享 DirectBytesStores
我已经MappedBytes
为一个文件创建了一个实例,该文件用作不同 Java 进程之间的共享缓存。
我希望能够从原始文件中分离出额外的 MappedByte 实例(或 ByteBuffer 或任何其他实例),这些实例提供对底层文件子集的直接读/写访问。
我今天花了很多时间尝试不同的方法,但选项如subBytes()
,rawCopy()
并且copyTo()
似乎都是创建底层文件的本地副本,而不是直接访问文件。
例如:
产生输出:
副本已被修改,但不是原件。我想修改原始文件,chronicle-bytes 可以这样做吗?
谢谢你的帮助,乔希。
chronicle - 引发段错误的编年史字节
按照chronicle-bytes shared DirectBytesStores中接受的解决方案,我现在已经以与接受的答案相同的方式设置了我的代码。
我正在生成 1,000,000 个对象,并将其写入 MappedFile,并且我希望每个对象都能够管理自己对 MappedFile 的读/写操作:
然后我使用以下方法创建 DataObject:
我发现,使用与上面类似的代码,一旦我达到约 100,000 个对象,chronicle-bytes 就会生成一个段错误。当尝试读取或写入 PointerBytesStore 但无法预测时,往往会发生段错误。
这是编年史字节中的错误还是我滥用了库?任何帮助/建议/建议将不胜感激。
chronicle - Chronicle Bytes 中是否有超快速的比较 byte[] 方法?
我将 Murmur3 64 位哈希作为字节数组存储在 Chronicle 字节对象中。我试图在物理上尽可能快地对这些键进行排序。我实施了快速排序来做到这一点。我注意到有一组比较和交换方法,但对于字节数组却没有。有什么可以用来加快我的快速排序的吗?分析表明,大多数压力都在net.openhft.chronicle.bytes.AbstractBytes.readCheckOffset(long, long, boolean) AbstractBytes.java
感谢您的任何提示。
chronicle - 日志记录器的日志级别设置为“TRACE”导致 AbstractMethodError
我已将编年史记录器级别设置为跟踪如下
导致以下错误
但是当日志级别设置为 info 或 error 时该错误不可用
任何可能的原因