C++ 内存问题排查:创建 Zip 压缩包,解压后内容错乱

在日常的 C++ 后台开发工作中,很少会动态生成 Zip 包,所以对 C++ 的 libzip 并不熟悉。最近刚好有个场景,需要将后台生成的一份数据压缩为一个 Zip 包以便下载。这里其实之前已经有生成 Zip 包的代码,只是需要在 Zip 包里面增加一个文件。本来是一个简单的需求,但是实现中遇到了一个诡异的问题,解压生成的 Zip 包里,里面文件开头部分有错乱

C++ 创建 Zip 压缩包乱码问题

阅读全文

复杂 C++ 项目堆栈保留以及 eBPF 性能分析

在构建和维护复杂的 C++ 项目时,性能优化和内存管理是至关重要的。当我们面对性能瓶颈或内存泄露时,可以使用eBPF(Extended Berkeley Packet Filter)和 BCC(BPF Compiler Collection)工具来分析。如我们在Redis Issue 分析:流数据读写导致的“死锁”问题(1)文中看到的一样,我们用 BCC 的 profile 工具分析 Redis 的 CPU 占用,画了 CPU 火焰图,然后就能比较容易找到耗时占比大的函数以及其调用链。

CPU 火焰图

阅读全文

车辆因交通事故导致贬值损失,可以获得赔偿吗?

近几年国内的车辆保有量不断上涨,交通事故发生的次数也越来越多。特别是国庆等节假日,车流量比平时多很多,不小心就会发生交通事故。一旦发生交通事故,车辆难免需要维修,维修费用一般会按照事故责任划分,由责任人或者保险来承担,这部分纠纷比较好处理。

但是除了维修费用,还有因维修导致的车辆贬值损失。对于车辆而言,即使维修后,车辆恢复了原有的功能,但是在二手市场上,这辆车的价值很可能因为事故的记录而比一辆未发生事故的同型号车辆要低。这部分贬值损失需要过错方承担吗?

交通事故车辆贬值损失赔偿问题

阅读全文