Java 在探查器中创建日志的格式是什么?
在我正在编写的分析器中,它实际上是Java程序的JVMTI代理,我需要一种格式来记录收集到的事件。此外,这些日志必须发送到套接字,并由GUI在其他地方读取。所以我需要两种语言之间的工作序列化 我已经用XML实现了我自己的协议,它运行得非常好。然而,我被告知要考虑另一种格式。因为XML构建可能非常缓慢,并且探查器中执行的每一个附加代码都会严重影响已分析的程序。这是真的,但是XML DOM构建需要那么长的时间吗 到目前为止,我使用了TinyXML。我希望没有人指向RapidXML,因为我希望在非嵌入式机器上没有那么大的不同Java 在探查器中创建日志的格式是什么?,java,c++,xml,profiling,protocol-buffers,Java,C++,Xml,Profiling,Protocol Buffers,在我正在编写的分析器中,它实际上是Java程序的JVMTI代理,我需要一种格式来记录收集到的事件。此外,这些日志必须发送到套接字,并由GUI在其他地方读取。所以我需要两种语言之间的工作序列化 我已经用XML实现了我自己的协议,它运行得非常好。然而,我被告知要考虑另一种格式。因为XML构建可能非常缓慢,并且探查器中执行的每一个附加代码都会严重影响已分析的程序。这是真的,但是XML DOM构建需要那么长的时间吗 到目前为止,我使用了TinyXML。我希望没有人指向RapidXML,因为我希望在非嵌入
你觉得怎么样?目前我正在尝试用protobuf重新实现它,它声称比XML快n倍。我的第一选择总是传统的txt文件
您可以在文件末尾添加新条目(底部)我正在为我的汇款中的所有日志文件进行设计。我用JSON记录数据,但JSON数据嵌套在非常简单的xml格式中 乙二醇
收到新消息
{“名称”:“AgtConf”,“AgtId”:1111,…}
这样,我可以轻松地将数据和日志分离出来,但不会使日志目录变得复杂。还省去了为自定义格式编写自己的解析器。然而,考虑到您的情况,我建议仅在您基本上使用JSON进行序列化的情况下使用JSON。如果格式正确,JSON的可读性非常强,它可以非常简洁,并且有稳定的解析器。分析器的用途是什么?如果目的是发现瓶颈(而不仅仅是测量速度),那么最有用的捕获方法就是随机或均匀的堆栈跟踪(不只是CPU时间)。这就是我所做的。获取大量样本不是必需的。使用热键动态启用采样非常有用。
<entry ts="2011-02-23T17:18:19.202" level="trc_1" typ="trace">New Message Received</entry>
<entry ts="2011-02-23T17:18:19.202" level="trace" typ="msg"><data>{"Name":"AgtConf","AgtId":1111,...}</data></entry>