
linux程序设计
老马农
这个作者很懒,什么都没留下…
展开
-
Linux 查看进程消耗内存情况总结
在Linux中,有很多命令或工具查看内存使用情况,今天我们来看看如何查看进程消耗、占用的内存情况,Linux的内存管理和相关概念要比Windows复杂一些。在此之前,我们需要了解一下Linux系统下面有关内存的专用名词和专业术语概念:物理内存和虚拟内存物理内存:就是系统硬件提供的内存大小,是真正的内存,一般叫做内存条。也叫随机存取存储器(random access memory,RAM...转载 2020-04-26 15:42:40 · 721 阅读 · 0 评论 -
Linux下原生异步IO接口libaio介绍
在调研 fio的实现时,接触了libaio的使用方式。由于fio 的io engine发送及接受数据的流程是按照liaio库的方式进行的。所以初步使用了libaio。现总结如下。几点说明本文的重点在于libaio的使用方式。所以对什么是同步、异步及阻塞、非阻塞IO,请参考相应资料。比较权威的资料是Richard Stevens的“UNIXNetwork Programming Volum...转载 2020-04-26 15:38:54 · 2304 阅读 · 0 评论 -
IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)
当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link 。写完之后发现很多人都很喜欢,我还是非常开心的,也说明这个问题确实困扰了很多人。随着学习的深入,渐渐的感觉原来的理解有些偏差,但是还是没引起自己的重视,觉着都是一些小错误,无伤大雅。直到有...转载 2020-04-26 15:37:01 · 254 阅读 · 0 评论 -
Linux libaio 异步I/O简述
最近准备仔细看看innodb 异步I/O的实现,而在LINUX平台下Innodb中一般我们使用的都是libaio叫做LINUX NATIVE AIO,这有别于POSIX实现的AIO,因为以前对异步I/O并不熟悉,因为在很多LINUX 系统编程书籍上都没有介绍,而网上也是资料不多。当然其好处还是非常明显的,能够在使用O_DIRECT 打开文件的情况下,保证性能而不是消耗CPU资源在等待I/O落盘上,...转载 2020-04-26 15:35:38 · 773 阅读 · 0 评论 -
pread与pwrite使用
1 缘由在阅读seastar源码时发现有使用pread函数,这也是第一次认识pread函数,平时用read比较多。2 pread函数函数原型:#include <unistd.h>ssize_t pread(int fd, void *buf, size_t count, off_t offset);ssize_t pwrite(int fd, const ...转载 2020-04-26 15:34:20 · 1692 阅读 · 0 评论 -
Linux下原生异步IO接口Libaio的用法
Linux下原生异步IO接口Libaio的用法Posted on June 15, 2011 by Jian Zhoulibaio是linux下原生的异步IO接口。网上对其使用方法讨论较少,这里做个简单说明。libaio的使用并不复杂,过程为:libaio的初始化,io请求的下发和回收,libaio销毁。一、libaio接口libaio提供下面五个主要API函数:int io_se...转载 2020-04-26 15:33:20 · 1184 阅读 · 0 评论 -
GDB十个常用调试命令
GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。命令 解释 示例 file <文件名> 加载被调试的可执行程序文件。 因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径。 (gdb) file gdb-sample r Run的简写,运行被调试的程序。 如果此前...转载 2020-03-19 16:19:55 · 336 阅读 · 0 评论 -
Git学习材料
一个小时学会Githttps://www.cnblogs.com/best/p/7474442.htmlGit 图解剖析https://www.cnblogs.com/yaozhongxiao/p/3811130.htmlgit教程https://www.liaoxuefeng.com/wiki/896043488029600...转载 2020-01-17 16:14:45 · 122 阅读 · 0 评论 -
Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!
预警:因为详细,所以行文有些长,新手边看边操作效果出乎你的预料)一:Git是什么?Git是目前世界上最先进的分布式版本控制系统。工作原理 / 流程:Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库二:SVN与Git的最主要的区别?SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用...转载 2020-01-17 15:07:00 · 240 阅读 · 0 评论 -
addr2line命令使用
Addr2line 工具(它是标准的 GNU Binutils 中的一部分)是一个可以将指令的地址和可执行映像转换成文件名、函数名和源代码行数的工具。这种功能对于将跟踪地址转换成更有意义的内容来说简直是太棒了。要了解这个过程是怎样工作的,我们可以试验一个简单的交互式的例子。(我直接从 shell 中进行操作,因为这是最简单地展示这个过程的方法,如清单 4 所示。)这个示例 C 文件(test....转载 2020-01-15 14:04:55 · 1242 阅读 · 0 评论 -
Socket之同步与异步,阻塞与非阻塞
同步异步与阻塞非阻塞没有必然的联系,很多时候我们会错误认为同步=阻塞,异步=非阻塞。其实导致这种错误观点的原因是同步的时候大多以阻塞的形式表现出来的,异步的时候以非阻塞的形式表示的。 首先我们区分一下他们的概念。1、 同步与异步:是一种消息通知机制,不是原创 2011-08-28 12:00:33 · 301 阅读 · 0 评论 -
EPOLL概述
一、epoll简介:epoll仅仅是一个异步事件的通知机制,其本身并不作任何的IO读写操作,它只负责告诉你是不是可以读或可以写了,而具体的读写操作,还要应用层自己来作。它保持了事件通知与IO操作之间彼此的独立性,二、相关函数:1、epoll_create函数原创 2011-08-24 17:12:17 · 754 阅读 · 0 评论