perf火焰图
生成采集文件1sudo perf record -F 100 -p 1847 -g --sleep 30 -F 100: 每秒100次的采样率 -p 1847: 要采样的PID – sleep 30: 执行30秒 输出为perf.data 1perf script -i perf.data > perf.unfold 转为火焰图1234git clone https://github.com/brendangregg/FlameGraph.gitcd FlameGraph./stackcollapse-perf.pl perf.unfolf | ./flamegraph.pl > out.svg 结果
Debain13安装btrfs和快照
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172~ # df -hFilesystem Size Used Available Use% Mounted ontmpfs 193.5M 384.0K 193.1M 0% /rundevtmpfs 952.7M 0 952.7M 0% /dev/dev/sr0 754.0M 754.0M 0 100% /cdromnone 256.0K 59.7K 191.3K 24% /sys/firmware/efi/efivars/dev/nvme...
qemu安装mips64el架构debian12虚拟机
前言 mips: 32位大端序 mipel: 32位小端序 mips64el: 64位小端序 1apt install libguestfs-tools mips安装1apt install qemu-system-mips 创建12345mkdir qemu-mips64elcd qemu-mips64elwget https://deb.debian.org/debian/dists/Debian12.11/main/installer-mips64el/current/images/malta/netboot/initrd.gzwget https://deb.debian.org/debian/dists/Debian12.11/main/installer-mips64el/current/images/malta/netboot/vmlinuz-6.1.0-35-5kc-malta 1qemu-img create -f qcow2 hda.qcow2 20G 12345678910111213qemu-system-mips64el \ -machine ...
jemalloc排查内存泄露
安装jemalloc1apt install libjemalloc2 安装svg图片生成工具1apt install graphviz gv 测试代码 123456789101112131415161718192021222324#include <iostream>#include <string>#include <vector>#include <map>#include <chrono>#include <thread>int main() { std::vector<int> vec; std::map<int, int> mp; std::string s; for (;;) { for (int i = 0; i < 1000; ++i) { vec.push_back(i); mp[rand()] = i; s += &quo...
vscode配置clangd代码提示
前言为什么要用clangd呢?因为vscode自带的c/c++扩展一旦打开大型项目,代码提示和跳转速度都非常感人,而clangd的代码提示和跳转速度非常快,所以这里记录一下如何配置clangd。 而我的环境为windows,因为讨厌msvc的臃肿所以使用msys2的ucrt64里安装的g++,全网能搜到的教程要么是linux下的vscode,要么用wsl,还有的是直接llvm全套,总之我是没找到windows下vscode用g++编译器,仅使用clangd作为提示工具的方法,所以这里记录一下。 安装clangd方案一用scoop安装clangd 1scoop install clangd 方案二直接去github https://github.com/clangd/clangd/releases/tag/19.1.2 下载clangd,然后解压到任意位置,配置环境变量即可。 保证 clangd –version 有输出即可 配置vscode打开vscode 之前安装的C/C++扩展都不用动,搜索clangd扩展 安装这一个就行, 这里疯狂提示confi...
MSYS2配置C++开发环境
记得之前写过一篇文章 《windows下编译libopus》 ,当时提到MSYS2未能成功编译libopus,最近又试了下,没问题了。。。yysy,突然发现MSYS2太好用了,尤其是pacman 安装MSYS2MSYS2官网:https://www.msys2.org/ 下载安装包,安装即可 windows上选择UCRT64就行了,也是官方推荐的环境 配置环境变量安装完成后,打开MSYS2,输入以下命令更新组件库 1pacman -Syu 更新系统,然后安装toolchain 12pacman -S mingw-w64-ucrt-x86_64-toolchainpacman -S mingw-w64-ucrt-x86_64-gdb 配置makemsys64/ucrt64/bin 下mingw32-make.exe,复制一份,改名为make.exe,这样就可以直接使用make命令了 配置CMake不要 pacman -S mingw-w64-ucrt-x86_64-cmake 因为这样安装的cmake功能很有限,用不了MinGW Makefiles 工具链 去 https://...
RtAudio播放PCM
RtAudio播放PCM1. RtAudio简介RtAudio是一个跨平台的音频I/O库,可以在Windows、MacOS和Linux上使用。它提供了简单易用的接口,可以方便地进行音频数据的输入和输出。项目地址 Pulse和ALSA的区别PulseAudio和ALSA是Linux系统中两种重要的音频处理组件,它们在功能和用途上存在显著区别。 ALSA(Advanced Linux Sound Architecture)ALSA是Linux内核的一部分,主要负责与声卡的直接通信。它提供了一套底层的音频驱动接口,允许应用程序直接访问声卡硬件。然而,ALSA有一些局限性,例如它一次只能处理一个应用程序的音频流,且不支持多路混音。此外,ALSA的配置和使用相对复杂,需要手动设置和调整。 PulseAudioPulseAudio是一个运行在用户空间的音频服务器,它通过ALSA与硬件通信。PulseAudio的主要功能是作为多个应用程序之间的音频仲裁者,能够同时处理多个音频流,并提供混音、音量控制、设备切换等功能。PulseAudio还支持跨平台使用,可以在不同的操作系统上运行...
C++带返回值类型函数不加return引发的血案
背景写的代码在x64上单元测试一点问题没有,交叉编译出aarch64架构程序,跑在测试那里一开就崩,查了半天竟然是没有加return引发的血案… 调试过程函数调用funca,调用完funca后本应该回到调用函数,但gdb查core却看到奇怪的堆栈信息funcb在funca之上,且崩在funcb里,这里简单写个小demo测试了一下(当然这个demo不会崩,因为没有访问成员变量) 123456789101112131415161718192021#include <iostream>using namespace std;int funca(){ cout << "this is func A" << endl; //return 0;}int funcb(){ cout << "this is func B" << endl; return 0;}int main(){ funca(); retur...
声音检测VAD
语音活动检测(Voice Activity Detection,VAD),就是检测是否有声音,常规的算法是通过声音音量和频谱特征来判断是否有声音的,但是无法区分是噪音还是人声。 VAD技术主要用于语音编码和语音识别。 它可以简化语音处理。 也可用于在音频会话期间去除非语音片段 可以在IP电话应用中避免对静音数据包的编码和传输,节省计算时间和带宽。 webrtc中封装了声音检测算法,但是由于webrtc体量太过庞大,为了一个算法链接这么大个项目不太值得,因此将webrtc中的算法拆出为单独的库 https://github.com/helianchichi/libwvad 支持8000, 16000, 32000, 48000采样率,支持10, 20, 30 ms时长帧
音频处理lowcFE
前言流媒体在网络传输中有可能会发生丢包现象,对于音频,丢包会导致解码后的声音听起来卡顿不连续,lowcFE是种算法,可在发生丢包时猜测丢包内容,模拟丢失的数据 lowcFE,全称为 Low Complexity Frame Erasure 低复杂度帧擦除(为什么叫擦除而不是恢复我也不懂),所谓低复杂度大概原因是其只支持8K采样的10ms数据吧 头文件 lowcfe.h123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566/* ============================================================================ File: lowcfe.h V.1.0-24.MAY-2005 =============================...









