对于性能分析,我公司对纳秒分辨率感兴趣。到目前为止,我们一直在使用硬件时间戳,纳秒级的支持很快被侵入C libpcap库。
似乎已经将纳秒的支持添加到了库中(请参见此处的其他Stack Overflow答案),并且git存储库上的最新版本使以下方法可用:
pcap_open_offline_with_tstamp_precision(pathname, PCAP_TSTAMP_PRECISION_NANO, errbuf);
事实是,C已经证明自己很难维护,很难扩展,并且由于我们仅将捕获用于分析,因此我们感觉可以从使用Java中受益。在性能分析方面,能够使用适当的IDE,Maven,构建Web服务等似乎比执行速度更为重要。
我最初希望能够使用jNetPcap,但无法找到如何通过libpcap的Java绑定来支持纳秒分辨率。
有谁知道使用jNetPcap读取纳秒级精度的Pcap文件的简便方法?
更新:我刚刚发现TimestampResolution
在jNetPcap的Javadoc中提到了一个枚举。我将尝试使用它,并在以后更新我的答案。
注意:我也直接在jNetPcap的支持论坛上询问了纳秒分辨率,如果我在那边得到任何答案,都会更新我的问题...
有谁知道从Java生态系统中获利的另一种方法,同时仍然能够以纳秒级的精度读取PCap文件?
谢谢!:)
我知道这个问题很旧,但是以防万一其他人有这个需要-如果不是必须使用jNetPcap,pcap4j似乎支持它。
打开盖子:
PcapHandle h = Pcaps.openOffline(fname, PcapHandle.TimestampPrecision.NANO);
要读取数据包和时间戳:
Packet nextPacket = h.getNextPacket();
Timestamp timestamp = h.getTimestamp();
希望对您有所帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句