linux
文章平均质量分 51
青箫
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
linux监控命令
转自:http://blog.jobbole.com/81173/1.1 top1.1.1 命令说明Top 命令能够实时监控系统的运行状态,并且可以按照cpu、内存和执行时间进行排序1.1.2 参数说明命令行启动参数: 用法: top -hv | -bcisSHM -d delay -n iterations [-u user | -U user] -p pid [,pid …] -b : 批次转载 2015-12-21 10:44:58 · 323 阅读 · 0 评论 -
Disruptor:为什么会这么快?(一)Ringbuffer的特别之处
我对Disruptor的最初印象就是ringbuffer。但是后来我意识到尽管ringbuffer是整个模式(Disruptor)的核心,但是Disruptor对ringbuffer的访问控制策略才是真正的关键点所在。ringbuffer到底是什么? 嗯,正如名字所说的一样,它是一个环(首尾相接的环),你可以把它用做在不同上下文(线程)间传递数据的buffer。基本来说,ringbuffer拥有一转载 2016-03-27 18:19:41 · 1014 阅读 · 0 评论 -
Disruptor:为什么会这么快?(三)揭秘内存屏障
什么是内存屏障?它是一个CPU指令。没错,又一次,我们在讨论CPU级别的东西,以便获得我们想要的性能(Martin著名的Mechanical Sympathy理论)。基本上,它是这样一条指令: a)确保一些特定操作执行的顺序; b)影响一些数据的可见性(可能是某些指令执行后的结果)。编译器和CPU可以在保证输出结果一样的情况下对指令重排序,使性能得到优化。插入一个内存屏障,相当于告诉CPU和编译器先转载 2016-03-27 18:01:46 · 471 阅读 · 0 评论 -
disruptor --神奇的缓存行填充2
解决方案-神奇的缓存行填充你会看到Disruptor消除这个问题,至少对于缓存行大小是64字节或更少的处理器架构来说是这样的(译注:有可能处理器的缓存行是128字节,那么使用64字节填充还是会存在伪共享问题),通过增加补全来确保ring buffer的序列号不会和其他东西同时存在于一个缓存行中。1 public long p1, p2, p3, p4, p5, p6, p7; // cache l转载 2016-03-27 17:03:14 · 505 阅读 · 0 评论 -
disruptor --神奇的缓存行填充1
CPU是你机器的心脏,最终由它来执行所有运算和程序。主内存(RAM)是你的数据(包括代码行)存放的地方。本文将忽略硬件驱动和网络之类的东西,因为Disruptor的目标是尽可能多的在内存中运行。CPU和主内存之间有好几层缓存,因为即使直接访问主内存也是非常慢的。如果你正在多次对一块数据做相同的运算,那么在执行运算的时候把它加载到离CPU很近的地方就有意义了(比如一个循环计数-你不想每次循环都跑到主内转载 2016-03-27 16:57:46 · 684 阅读 · 0 评论 -
常用命令(一)
export: 语 法:export [-fnp][变量名称]=[变量设置值] export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。参 数: -f 代表[变量名称]中为函数名称。 -n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。 -p 列出所有的shell赋予程序的环境变量。 一个变量创建时,它不原创 2016-04-25 15:48:43 · 386 阅读 · 0 评论 -
gdb 调试源码
1、在测试机器上找到pid: ps uxf2、 gdb attach +PID bt 设置断点 c 执行语句原创 2016-03-27 13:55:45 · 579 阅读 · 0 评论 -
git commit 撤销
先使用git log 查看 commit日志commit be93c7cee2303e62b3a3ad94013d07fb8e27c97c Merge: b3589b7 5d24a53 Author: 青箫 xueya.jxy@alibaba-inc.com Date: Fri Mar 25 20:31:12 2016 +0800Merge branch 'master' of gitla原创 2016-03-25 20:40:30 · 872 阅读 · 0 评论 -
git查看某个文件的修改历史
有时候在比对代码时,看到某些改动,但不清楚这个改动的作者和原因,也不知道对应的BUG号,也就是说无从查到这些改动的具体原因了~【注】:某个文件的改动是有限次的,而且每次代码修改的提交都会有commit描述,我们可以从这里进行入手;一、切换到目录首先切换到要查看的文件所在的目录:cd packages/apps/Mms/src/com/android/mms/ui/二、git log –pretty然转载 2016-03-25 17:44:37 · 835 阅读 · 0 评论 -
编译
CFLAGS 表示用于 C 编译器的选项, CXXFLAGS 表示用于 C++ 编译器的选项。 这两个变量实际上涵盖了编译和汇编两个步骤。 CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include目录加入到原创 2016-03-22 20:41:36 · 330 阅读 · 0 评论 -
UID 是否有对应用户名
假设在一台Unix主机上有一个账号,用户名是JXY, 用户ID 是2000, 创建了一个文件,这个文件的st_uid 的值就是2000. 假设一段时间以后你搬走了,系统管理员于是把这个账号删除,在password中不再有JXY这一行,这时如果getpwuid得到的参数是2000,它就会返回NULL. 标准的ls如果遇到这种情况,会打印出UID. 当新加入一个用户时,新用户有可能与一个已被删除的原创 2016-03-15 19:30:35 · 1998 阅读 · 0 评论 -
patch应用
1.git diff生成的标准patch 我们可以首先用git diff制作一个patch。本文示例的工作目录里最初有一个文件a,内容是“This is the file a.”,放置在master分支中。为了修改代码,我们一般的做法是建立一个新分支:sweetdum@sweetdum-ASUS:~/GitExgitbranchFixsweetdum@sweetdum−ASUS: /GitEx g转载 2016-05-04 16:48:54 · 948 阅读 · 0 评论
分享