gpt4 book ai didi

c++ - 速度关键系统的设计跟踪/日志

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:28:31 40 4
gpt4 key购买 nike

假设我们有速度关键的系统(例如统计/分析、套接字编程等),我们如何设计跟踪和日志。

更具体地说,日志和跟踪通常会降低性能(即使我们有关闭机制或冗长的扩展机制)。在这种情况下,是否有任何关于如何“放置”日志/跟踪的引用指南,以便在问题发生时(尤其是在生产现场)开发人员/后期制作团队能够查明实际问题。

PS:我来自使用 C/C++(在 Linux 上运行)开发此类应用程序的背景

最佳答案

您可以在缓冲区内累积日志,您可以使用 Google Protocol Buffers 描述和实现它.您可以让不同的线程定期(每 5 分钟)将此缓冲区清空到磁盘或通过 UNIX domain socket 发送它(或其他 Linux IPC mechanisms )到一个守护程序,该守护程序监听并将它们写入持久数据库或只是将它们写入磁盘。

如果你不想在产生日志的机器上打磁盘,你可以通过regular socket将它们发送到不同的机器上。并将它们写入该机器上的磁盘。

如果您要聚合多台机器的日志,请考虑使用 0MQCrossRoads作为消息队列将您的日志通过网络传递到永久存储它们的机器。您可以找到有关 using 0MQ in conjuction with Google Protocol Buffers here 的一些信息.

关于c++ - 速度关键系统的设计跟踪/日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15498785/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com