lsof 一切皆文件 lsof(list open files)是一个查看当前系统文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,该文件描述符提供了大量关于这个应用程序本身的信息。 lsof打开的文件可以是: 普通文件 目录 网络文件系 2020-08-20 软件开发 linux tools
00 objdump 二进制文件分析 objdump工具用来显示二进制文件的信息,就是以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息。 1. 常用参数说明-f 显示文件头信息-D 反汇编所有section (-d反汇编特定section)-h 显示目标文件各个section的头部摘要信息-x 显示所有可用的头信息,包括符号表、重定位入口。-x 等价于 -a -f -h -r -t 同时指定。-i 显示对于 -b 或者 - 2020-08-20 tools,linux
(转载)C++ 内存分配(new,operator new)详解 本文转载自《https://blog.csdn.net/WUDAIJUN/article/details/9273339》 本文主要讲述C++ new关键字和operator new, placement new之间的种种关联,new的底层实现,以及operator new的重载和一些在内存池,STL中的应用。 一. new operator 和 operator newnew operator: 2020-08-16 软件开发 c++
00 squid 内存池研究 1. 概述本文的squid原理及代码基于squid 4.12版的源码,主要阐述及分析了squid的内存池原理及响应的代码实现。squid的内存池有两种模式,一种是poolmalloc模式,另外一种是poolchunked模式 2. 原理分析从总体上来看,squid的内存池是通过按照不同大小的固定尺寸内存链来处理的。应用向内存池申请内存时,先找到应用需要的内存对应的内存链,再从内存链中获取一个可用的 2020-08-16 高性能代理软件 squid
伸展树(splay) 概述二叉查找树(Binary Search Tree,也叫二叉排序树,即Binary Sort Tree)能够支持多种动态集合操作,它可以用来表示有序集合、建立索引等,因而在实际应用中,二叉排序树是一种非常重要的数据结构。 从算法复杂度角度考虑,我们知道,作用于二叉查找树上的基本操作(如查找,插入等)的时间复杂度与树的高度成正比。对一个含n个节点的完全二叉树,这些操作的最坏情况运行时间为O(log 2020-08-15 算法与数据结构 算法
02 [百度分享]频繁分配释放内存导致的性能问题分析 1. 现象 压力测试过程中,发现被测对象性能不够理想,具体表现为:进程的系统态CPU消耗20,用户态CPU消耗10,系统idle大约70 用ps -o majflt,minflt -C program命令查看,发现majflt每秒增量为0,而minflt每秒增量大于10000。 2. 分析2.1 初步分析majflt代表major fault,中文名叫大错误,minflt代表minor fau 2020-08-14
VIRT 与 RSE 占用分析 1、概述在Linux命令行中执行top命令,可以查询到所有进程使用的VIRT虚拟内存、RES常驻内存和共享内存SHR。那么,什么是VIRT虚拟内存、RES常驻内存和共享内存SHR?我们编写的Linux C++程序如何影响它们呢? VIRT:- 进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据,以及malloc、new分配的堆空间和分配的栈空间等; - 假如进程新申请10MB的内存,但实际只 2020-08-13 软件开发 linux c
getopt与getopt_long使用 解析命令行参数getopt和getopt_long在程序中一般都会用到命令行选项, 我们可以使用getopt 和getopt_long函数来解析命令行参数 getoptgetopt主要用来处理短命令行选项, 例如./test -v中 -v 就是一个短选项. 使用该函数需要引入头文件<unistd.h>, 下面是该函数的定义int getopt(int argc, char * cons 2020-08-03 软件开发 c++ c
设计模式的六大原则 1. 设计模式的六大原则1.1 开闭原则(Open Close Principle)开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。 1.2 里氏代换原则(Liskov Substitution Princip 2020-08-02 架构设计 设计模式
goreplay 引流测试工具 下载地址1https://github.com/buger/goreplay 使用方法./goreplay --input-raw :7001 --output-http http://ip:port 12# 将当前data目录下所有的.gor 文件作为流量回放的开始点, 打到10.72.138.200的80端口服务上./gor -input-file "./data/*.gor& 2020-07-31 devops test