Tags
18 个页面
c++
pstack排查进程假死
在软件开发和运维中,经常会遇到进程假死的情况,这种情况会导致系统性能下降或者服务不可用。本文介绍如何使用 pstack 工具来排查进程假死问题,通过分析进程的堆栈信息,找出问题的原因并解决。
背景:风控系统子服务出现假死,导致风控服务不可用。由于缺乏服务可用性监控,无法及时发现进程假死的情况,导致系统不可用。
C++函数调用耗时
设计行情 SDK,针对不同的回调函数实现方式,进行了一次耗时的测试。近期在看 C++ 函数编程,当函数变成了一等公民,在程序内部流转,耗时有什么不同?
前文链接:编译器、回调函数、性能测试
leimao 大佬刚好也做了类似的测试,借代码一用。
程序如何反调试
心血来潮,琢磨找找新壁纸,习惯黑色系列,部分区域彩色即可,桌面需要放置图标,其他色系作壁纸,图标就不清晰了。
盯着上面的汇编代码思考一波,没看懂,尝试扔给AI,解释了指令,没有解释场景,必然是某个特殊场景用到的指令,常规代码不是这样的。
AI此时不如搜索引擎了,汇编的知识储备不足。
编译器、回调函数、性能测试
去年设计了一个SDK,负责处理封装一些事件,对外提供一个类接口,服务初始化的时候,调用方实现对应的类,并将对象指针传给模块。
接触过C11,好奇心害死猫,就想着这些接口都用lambda函数对象回调来实现会是什么结果,和纯虚函数的接口定义方法比较,更加灵活。
疑问就出现了,两种不同的语法,从性能角度来说,哪个更快一些?不懂编译原理,弄段代码试试看。
主机序、网络序,通过调试器,直接观察
在计算机的发展历史中,如何存储数据并没有统一的标准。
字节的排列方式有两个通用规则。例如,将一个多位数的低位放在较小的地址处,高位放在较大的地址处,则称小端序;反之则称大端序。在网络应用中,字节序是一个必须被考虑的因素,因为不同机器类型可能采用不同标准的字节序,所以均按照网络标准转化。
按照阅读习惯,大端字节序更符合从左到右的阅读顺序。
C11: sleep for vs yield
翻看代码的时候,std::this_thread::yield() 猛的引入眼帘,C11里面的语法糖,用了不少,yield还是第一次看到,以前都没注意。
为什么需要学习一门新语言
从上学时期开始算,接触 C++ 已经十多年了,为什么需要学习其他的编程语言?