跨机器计算时间差
组内现有通讯协议使用 steady_clock 作为时间戳,计算单个节点的耗时,某个特殊场景,用到了消息包自带的时间戳,自带的时间戳来自于其他机器,导致计算出来的耗时异常。
题话外:Gemini2.5 Pro 有希望彻底超越 GPT-4
组内现有通讯协议使用 steady_clock 作为时间戳,计算单个节点的耗时,某个特殊场景,用到了消息包自带的时间戳,自带的时间戳来自于其他机器,导致计算出来的耗时异常。
题话外:Gemini2.5 Pro 有希望彻底超越 GPT-4
C++ Linux 服务发生崩溃。服务依赖于某个静态库进行编译。
静态库执行了修改,头文件增加了成员变量,重新发布了静态的二进制库文件
服务依赖新的二进制库文件,能正常编译,运行就会崩溃,崩溃的地方明显没问题,有点类似上次编译器升级的崩溃,未定义行为,崩溃的堆栈不可信。 更新服务编译时依赖的头文件,能正常变异,运行也都正常
详细解释这是为什么,涉及到什么计算机的知识,我猜测和内存布局相关,举例进行详细说明。
在实际的C++开发中,位操作是常见的技术,尤其在处理系统状态、标志位或控制位时,位操作可以提供非常高效的解决方案。本文将通过一个例子,讲解如何使用位操作来获取和设置特定的标志位。
在C++开发的历史项目中,我们使用自定义协议进行通信,协议采用了二维数组的模式。在处理大量数据时,协议内部需要遍历数组并进行序列化操作以生成日志,由于效率较低,导致了系统在高负载下出现明显的卡顿,业务部门反馈系统卡顿。
在C++中,lambda表达式是一种方便的匿名函数,可以捕获外部变量并在其体内使用。这使得lambda成为一种灵活的编程工具。不过,lambda表达式的参数生命周期是一个需要特别关注的方面,尤其是在捕获和传递参数时
在同一段业务代码的情况下,程序在 CentOS 7 环境下编译并运行正常,但当切换到 CentOS 8 并使用更新版的 GCC 进行编译时,程序却发生了崩溃。值得注意的是,问题只在 Release 模式下出现,Debug 模式则完全没有问题。这是我们第一次遇到类似的情况,经过三天的排查,最终找到了问题的根源。
在软件开发和运维中,经常会遇到进程假死的情况,这种情况会导致系统性能下降或者服务不可用。本文介绍如何使用 pstack 工具来排查进程假死问题,通过分析进程的堆栈信息,找出问题的原因并解决。
背景:风控系统子服务出现假死,导致风控服务不可用。由于缺乏服务可用性监控,无法及时发现进程假死的情况,导致系统不可用。