随笔分类 - linux
摘要:LD_DEBUG=all ls 查看依赖的库及符号
阅读全文
摘要:原文地址 https://blog.csdn.net/yu280265067/article/details/50986947?utm_source=blogxgwz0 相关解释 CAS原子性操作的原理: 上述栗子可见,最终java调用的是Unsafe类的CAS方法,该方法是native方法,它的实
阅读全文
摘要:cas实现 https://www.cnblogs.com/shines77/p/4209871.html 无锁队列 https://blog.csdn.net/yand789/article/details/27545135
阅读全文
摘要:1. 切换方式 从用户态到内核态切换可以通过三种方式,或者说会导致从用户态切换到内核态的操作: 系统调用,这个上面已经讲解过了,在我公众号之前的文章也有讲解过。其实系统调用本身就是中断,但是软件中断,跟硬中断不同。系统调用机制是使用了操作系统为用户特别开放的一个中断来实现,如 Linux 的 int
阅读全文
摘要:pidstat是sysstat工具的一个命令,用于监控全部或指定进程的cpu、内存、线程、设备IO等系统资源的占用情况。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。 pid
阅读全文
摘要:而在每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好 CPU 寄存器和程序计数器 CPU 寄存器,是 CPU 内置的容量小、但速度极快的内存。而程序计数器,则是用来存储CPU 正在执行的指令位置、或者即将执行的下一条指令位置。它们都是 CPU 在运
阅读全文
摘要:最新遇到cpu一直被k8s设的cpu限制,程序完全到不到最高效率 可以利用工具 tuned-adm 查看cpu策略并修改,实测很有效
阅读全文
摘要:现象 1 压力测试过程中,发现被测对象性能不够理想,具体表现为: 进程的系统态CPU消耗20,用户态CPU消耗10,系统idle大约70 2 用ps -o majflt,minflt -C program命令查看,发现majflt每秒增量为0,而minflt每秒增量大于10000。初步分析majfl
阅读全文
摘要:bss段: bss段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。 bss是英文Block Started by Symbol的简称。 bss段属于静态内存分配。 data段: 数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区
阅读全文
摘要:C++ 构造函数的异常是一个比较难缠的问题,很多时候,我们可能不去考虑这些问题,如果被问到,有人可能会说使用RAII管理资源。 但你真的考虑过如果构造函数失败了,到底会发生什么吗,前面构造成功的成员、基类对象应该怎样回收? 最近在知乎上看到有人提到这个问题: http://www.zhihu.com
阅读全文
摘要:另一篇好文地址 c++性能优化--tcmalloc https://blog.51cto.com/9291927/2568961?source=dra gperf官方介绍https://gperftools.github.io/gperftools/tcmalloc.html 前言 TCMalloc
阅读全文
摘要:https://my.oschina.net/u/4614991/blog/4494424 传统gdb调试多线程死锁方法 (1)attach id关联到发生死锁的进程id (gdb) attach 109Attaching to process 109[New LWP 110][New LWP 11
阅读全文
摘要:如果出现了符号冲突一定要解决: 可通过 gcc 的 -Wl,-Bsymbolic选项告诉加载器优先使用自己的符号,而不优先用全局的符号。该选项可以解决符号冲突。 TIPS: 如果想观察加载器的工作,可以使用环境变量 LD_DEBUG=all ./main 来执行程序,会获得详细的解析过程。manpa
阅读全文
摘要:2022/08/02更新 以下动态库方法,如使用隐式加载(不适用dlopen,编译链接时-l链接进去),符号默认会暴露出去 另有静态库符号和符号隐藏的一些内容 原文地址 https://www.cnblogs.com/bourneli/archive/2011/12/28/2305280.html
阅读全文
摘要:到了今天发现static还有一些知识没搞明白 c/c++语言中,在执行main的入口函数之前,是会首先执行一段代码。而对于全局变量和部分static的初始化就是 在main函数之前执行的,例子如下: #include <iostrem.h> #include <stdio.h> class CTes
阅读全文
摘要:使用tcmalloc时,如果程序加载了同一个库的.a和.so(例如两个不同的库分别加载一个库的动态静态),会出现崩溃问题。具体现象就是会出现invalidfree
阅读全文
摘要:原文地址 https://blog.csdn.net/dog250/article/details/80331590 重点学习以黑盒trick的方式,探究出了malloc后read为何没有内存缺页的现象
阅读全文
摘要:文件页 内存回收,也就是系统释放掉可以回收的内存,比如缓存和缓冲区,就属于可回收内存。它们在内存管理中,通常被叫做文件页(File-backed Page)。大部分文件页,都可以直接回收,以后有需要时,再从磁盘重新读取就可以了。 脏页 那些被应用程序修改过,并且暂时还没写入磁盘的数据(也就是脏页),
阅读全文
摘要:https://blog.csdn.net/lantianjialiang/article/details/50510937 https://www.cnblogs.com/scotth/p/4285480.html tcmalloc内存未释放可做一下几个操作 解决方法: 1. 不使用cache,将
阅读全文