自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 gRPC server crash with special proto message definition

思索了一下,怀疑是和编译器有关,由于gRPC是按照官网guide default用的是gcc编译的,而自己的项目是用的Intel oneAPI编译的,于是用oneAPI来重新编译helloworld,果然出现了和项目中一样的crash问题。然后重新编译一下自己的项目,也能正常工作了。其中MeasReportRequest就是会crash的message,然后对应的修改了helloworld下的greeter_server.cc,编译之后居然没有报错。以后编译器还是尽量不要混着用。

2025-04-14 15:10:37 162

原创 std::format 千分位分隔符

最新想用C++ 20新增加的std::format来数字格式化成带千分位分隔符的字符串,chatgpt给出的例子是std::format("{:,}", 123456);,python规范中的确是支持千分位分隔符(thousands separator),估计就是这样让大模型集体产生了幻觉,以为C++也是一样的支持。看,貌似std::format并不支持千分位分隔符,但是这个地方也说了,std::format所用的格式规范是基于python的。错误信息非常离谱, 从。

2024-12-19 09:39:07 385

原创 理解extern “C“

不管是main.cpp还是main.c都是通过include了my_library.h头文件才知道调用my_function是怎么定义的,而在my_library.h中,我们使用了extern "C"把函数my_function的定义括了起来,这样在编译main.cpp和main.c的时候,不管是C++还是C编译器都会按照C的风格去理解函数my_function的名字.用C++写的lib在导出的API的时候经常会用到extern "C",这样可以直接在C程序里面被调用。

2024-11-20 11:31:23 640

原创 使用wireshark decipher 加密的5G NR RRC消息

首先需要选中一个RRC消息的PDCP消息头,然后点右键,在Protocol preferences中选择Open PDCP-NR preferences...这些步骤完成之后,加密的RRC消息就会被自动deciphered,然后如果加密或者完保有问题,还可以利用wireshark输出的如下辅助信息来帮助调试。然后在打开的窗口中按照如下配置勾选,注意一定要把Do sequence number analysis选成Only-PDCP-frames。

2024-11-02 09:55:43 516 5

原创 tcpdump抓容器间通信duplicate问题分析

这样我们就搞明白docker容器间通信的底层逻辑,再回到tcpdump抓包,由于我们用了-i any参数,tcpdump会把流经主机上的两个虚拟以太网接口1278和1282的包都抓了下来,比如从容器DU ping容器CU的包,在接口1278上是发出的包,在接口1282上就是接收到的包,tcpdump都会抓了下来,并且包的Linux cooked capture v2头部用Interface index来标识是从哪个接口上抓到的。

2024-11-01 21:52:32 1496 3

原创 C++中的volatile关键字

在C++中使用volatitle

2022-12-13 18:01:12 309

原创 Linux rand 函数多线程性能问题

最近项目里面一个模块随着线程的增加性能急速下降,debug了很长时间之后发现瓶颈在rand函数,把rand去掉之后性能提高很多,从400us到200us。网上找到很多也没人说这个rand函数有什么性能问题,通过查看glibc的source code random.c 发现在这个函数里面用到了锁,如下:long int__random (void){ int32_t retval; __libc_lock_lock (lock); (void) __random_r (&un

2022-05-08 18:18:56 501

原创 使用AVX-512指令来实现一个比特位反转

项目里面遇到需要把一个45位的比特流按照比特位来反转一下,也就是需要把第45位和第1位互换,第44位和第2位互换,依次类推。数据是用一个u64的整数来存储的,也就是需要把一个u64整数的低45位做一个bi...

2021-06-13 16:49:22 2347

原创 AVX-512指令_mm512_shuffle_epi8分析

从Intel网站https://software.intel.com/sites/landingpage/IntrinsicsGuide/#expand=5159,5640,5159&text=_mm512_shuffle_epi8可以得到

2021-06-12 15:20:43 4072

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除