自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (2)
  • 收藏
  • 关注

原创 fork vfork clone 的比较 (待完成)

最近项目团队中遇到了这几个API的问题,用某个都解决了一部分问题,又引入了新问题(例如用fork在句柄多的进程里面会导致系统缓慢, vfork导致了句柄泄漏,clone又导致了后面加锁失败),因此这里仔细分析以下。离开了内核版本讨论这个问题,都是不准确的,因此,本次分析是针对4.9.30版本内核,如果是其它版本,会指出。 编译&文档 编辑环境是ubuntu 16.04.首先 对象用

2017-05-31 21:59:38 501

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-05-28 05:50:45 277

转载 [转]putty颜色

默认的Putty颜色非常难看,深蓝色,绿色,深红色...看着很不舒服,尤其是目录默认为深蓝色,不仔细看很难看清楚。这里有一个可以让putty展示更好看点的解决方案,先看效果图设置方法1.下载配置文件:igvita-desert.regPutty的配置文件实际上是一注册表文件,Putty会从注册表中读取配置。2.导入下载好的注册表文件 igvita-d

2016-08-21 10:54:44 341

转载 [转]浅谈TCP/IP网络编程中socket的行为

我认为,想要熟练掌握Linux下的TCP/IP网络编程,至少有三个层面的知识需要熟悉:1. TCP/IP协议(如连接的建立和终止、重传和确认、滑动窗口和拥塞控制等等)2. Socket I/O系统调用(重点如read/write),这是TCP/IP协议在应用层表现出来的行为。3. 编写Performant, Scalable的服务器程序。包括多线程、IO Multiplexing、非阻

2016-08-21 10:43:13 317

转载 转:Linux内核的内存屏障

http://ifeve.com/linux-memory-barriers/

2016-06-05 22:54:57 315

转载 makefile 模板

PRGM = zztest  CC = gcc  CPPFLAGS =  LDFLAGS = -lrt -lz  CFLAGS = -Wall -ggdb3  COMPILE = $(CC) $(CPPFLAGS) $(CFLAGS) -c  LINKCC = $(CC) $(LDFLAGS)  LIBA = libcshm.a  SRCS := $(wildcard *.c)  DEPS :=

2016-03-13 23:15:07 256

转载 Linux 中的零拷贝技术

引言传统的 Linux 操作系统的标准 I/O 接口是基于数据拷贝操作的,即 I/O 操作会导致数据在操作系统内核地址空间的缓冲区和应用程序地址空间定义的缓冲区之间进行传输。这样做最大的好处是可以减少磁盘 I/O 的操作,因为如果所请求的数据已经存放在操作系统的高速缓冲存储器中,那么就不需要再进行实际的物理磁盘 I/O 操作。但是数据传输过程中的数据拷贝操作却导致了极大的 CPU 开销,限制了

2016-03-01 19:52:32 343

转载 linux splice 的解释

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:蚂蚁链接:https://www.zhihu.com/question/21705041/answer/36219654来源:知乎`splice`是 zero copy API 中最重要的一个,签名如下: ssize_t splice(int fd_in, loff_t *off_

2016-03-01 19:43:15 1896

转载 SO_REUSEADDR 和 SO_REUSEPORT

http://stackoverflow.com/questions/14388706/socket-options-so-reuseaddr-and-so-reuseport-how-do-they-differ-do-they-mean-t/14388707Welcome to the wonderful world of portability... or rather th

2016-02-20 09:57:07 371

转载 select、poll、epoll之间的区别总结[整理]

from: http://www.cnblogs.com/Anker/archive/2013/08/17/3263780.html  select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们

2016-02-06 23:05:36 971

转载 边缘触发(Edge Trigger)和条件触发(Level Trigger)

概述  边缘触发 是指每当状态变化时发生一个io事件;   条件触发 是只要满足条件就发生一个io事件;  详述                int select(int n, fd_set *rd_fds, fd_set *wr_fds, fd_set *ex_fds, struct timeval *timeout);     select用到了f

2016-02-06 22:55:10 384

转载 Cpu Cache对程序性能分析

转自:http://igoro.com/archive/gallery-of-processor-cache-effects/Most of my readers will understand that cache is a fast but small type of memory that stores recently accessed memory locations.

2016-01-24 19:23:08 1110

转载 HTTP幂等性

转自:http://www.cnblogs.com/weidagang2046/archive/2011/06/04/2063696.htmlTodd.log - a place to keep my thoughts on programming理解HTTP幂等性基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互

2016-01-22 11:58:10 244

转载 [转]定位多线程内存越界问题实践总结

定位多线程内存越界问题实践总结2013/2/4杨志丰 [email protected] 关键字 多线程,内存越界,valgrind,electric-fence,mprotect,libsigsegv,glibc 最近定位了在一个多线程服务器程序(OceanBase MergeServer)中,一个线程非法篡改另一个线程的内存而导致程序

2016-01-14 11:06:41 608

转载 [转]windows10中最强大王爽汇编语言学习环境

转自:http://blog.csdn.net/vs9841/article/details/49047599一、前言  这是采用VMwere Workstation12 pro虚拟机软件,搭建的MS-DOS学习环境,在windowsXP/8/10及linux中均可以使用,在这个环境中,我集成了CCDOS中文系统,pdos中文系统,使用这些系统,可以进行中文输入

2016-01-12 22:59:06 678 1

原创 我的vim文件(持续更新)

将vim在linux和windows上的使用统一到一个vimrc中,便于copy

2015-12-27 08:34:31 363

原创 DFA和NFA的区别

1.历史:正则表达式萌芽于1940年代的神经生理学研究,由著名数学家Stephen Kleene第一个正式描述。具体地说,Kleene归纳了前述的神经生理学研究,在一篇题为《正则集代数》的论文中定义了“正则集”,并在其上定义了一个代数系统,并且引入了一种记号系统来描述正则集,这种记号系统被他称为“正则表达式”。在理论数学的圈子里被研究了几十年之后,1968年,后来发明了UNIX系统的Ken T

2015-12-17 22:03:37 30080 2

原创 如何在centos上搞定tmate

tmux比较简单,很easy可以搞定。可是tmate,官方只给了mac和ubutn的安装,centos,完全不管......(1)官方教程(http://tmate.io/)是这个,但是只给了ubutn的安装,没有给centos的安装Grab the sources from github: https://github.com/nviennot/tmate.

2015-12-15 22:54:54 1257

原创 DSL如何和实际项目结合简化方案编写简单思考

采用外DSL,代码形式化所达到的表现力已经毋庸质疑了,如果能够再进一步,方案阶段,将sequence图,用脚本描述出来,然后一个通过DSL生成代码框架,一个通过工具(如PlantUML)生成sequence图,这样,方案的维护成本几乎为0。而且方案修改,只要修改脚本,代码和方案都会同步更新。PlantUML介绍:其实也是一个DSL,能够通过脚本来生成sequence图,有点类似于Gra

2015-12-10 23:12:43 336

转载 vim下解决ctrl-s ctrl-q 假死问题

http://blog.csdn.net/wangeen/article/details/8835501Ctrl-S 可能算是 Windows 下最常用的保存快捷键了,但是在类 Unix 系统下面却不是起保存的功能。最近都是在用 Cygwin +VIM 阅读和编写代码,时不时会不注意按到 Ctrl-S,导致 VIM 跟挂住了一样,啥都无法干,最后只能重启 shell,一

2015-12-09 22:08:47 760

原创 收藏互联网上感兴趣的博客和网址

易水博客 关注Linux, Scala, Java, 开源软件和嵌入式系统    http://easwy.com/blog/

2015-12-09 21:40:21 245

转载 vi/vim使用进阶: 程序员的利器 – cscope

http://easwy.com/blog/archives/advanced-vim-skills-cscope/本节所用命令的帮助入口: :help cscope 在前面的文章中介绍了利用tag文件,跳转到标签定义的地方。但如果想查找函数在哪里被调用,或者标签在哪些地方出现过,ctags就无能为力了,这时需要使用更为强大的cscope。Cscope具有纯正的Un

2015-12-09 21:35:19 285

转载 vim(gvim)相关插件整理

转:http://www.vimer.cn/2010/06/%E6%9C%AC%E5%8D%9A%E4%BD%BF%E7%94%A8%E7%9A%84vimgvim%E7%9B%B8%E5%85%B3%E6%8F%92%E4%BB%B6%E6%95%B4%E7%90%86.htmlplugin:编程相关:公共:taglist相信无人不知其大名,用来提供单

2015-12-09 21:29:57 413

转载 Cscope的使用

1、Cscope介绍       Cscope是类似于ctags一样的工具,但可以认为她是ctags的增强版,因为她比ctags能够做更多的事。在Vim中,通过cscope的查询,跳转到指定的地方就像跳转到任何标签;她能够保存标签栈,所以通过合适的键盘映射绑定,你能够在函数向后或向前跳转,就像通常使用的tags一样。       首次使用Cscope时,他会根据源文件生成符号数据库。然后在

2015-12-09 21:11:32 218

转载 awk入门简介

转自:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.htmlawk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: a

2015-11-24 09:59:35 281

原创 putty基本配置

2015-11-23 17:10:57 477

原创 运行过程中打印出函数调用栈

gcc main.c -g -rdynamic/* main.c */#include #include #include #define MAX_STACK_LAYERS 20void print_trace (void){ void *array[MAX_STACK_LAYERS]; size_t size; char **string

2015-11-20 10:23:34 733

原创 记录一个关于互联网、网页设计、Web开发、服务器运维优化、项目管理、网站运营、网站安全的网站

C1G军火库   关注互联网、网页设计、Web开发、服务器运维优化、项目管理、网站运营、网站安全…http://blog.c1gstudio.com/

2015-11-15 16:57:18 460

原创 五本编译原理的书

Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages (Pragmatic Programmers)Writing Compilers and Interpreters: A Software Engineering

2015-11-15 16:51:34 559

转载 编译器和解释器的入门(一)

转载:http://ruslanspivak.com/lsbasi-part1/“If you don’t know how compilers work, then you don’t know how computers work. If you’re not 100% sure whether you know how compilers work, then you don

2015-11-15 16:46:27 631

原创 Sublime 支持中文

Sublime Text 3 安装Package Control原来Subl3安装Package Control很麻烦,现在简单的方法来了一、简单的安装方法使用Ctrl+`快捷键或者通过View->Show Console菜单打开命令行,粘贴如下代码:import urllib.request,os; pf = 'Pack

2015-11-13 23:24:10 333

原创 一个图形的算法网站: http://visualgo.net/

visualising data structures and algorithms through animation

2015-11-12 12:43:33 1884

原创 ThreadSanitizer

Snaitizer家族,还有AddressSanitizer 和 MemorySanitizerThreadSanitizer又叫TSan,是一个检查线程Data Race的C/C++工具。它集成在新版的gcc和clang中,通过编译时加-fsanitize=thread,可以在运行时检测出Data Race的问题。ThreadSanitizer官网:https://c

2015-11-12 12:39:30 867

原创 [c++元编程一] 介绍

// 主模板templatestruct Fib{ enum { Result = Fib::Result + Fib::Result };};// 完全特化版template <>struct Fib{ enum { Result = 1 };};// 完全特化版template <>struct Fib{ enum { Result =

2015-09-14 00:30:45 246

转载 SkipList 跳表

转自:http://kenby.iteye.com/blog/1187303为什么选择跳表为什么选择跳表目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。 想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考虑

2015-09-08 10:21:05 158

原创 循环删除目录

import osfor (p,d,f) in os.walk("D:\\abc"):    if p.find('.svn')>0:         os.popen('rd /s /q %s'%p)

2015-05-13 13:55:19 342

原创 Flyweight模式

意图:运用共享技术有效的支持大量细粒度对象适用性:1一个应用程序使用了大量的对象2由于使用大量的对象造成很大的开销3对象的大多数状态都可变为外部状态4如果删除对象的外部状态,可以用相对较少的共享对象,取代很多组对象5应用程序不依赖于对象标识效果:使用FLYWEIGHT模式后,传输查找和计算外部状态都会产生开销,然而空间上的节省抵消了这

2014-08-20 20:10:10 340

转载 Decorator模式

一. 举例我之前做过一个文件系统就叫 MyFileSys 吧,后来的话,客户想加入一些附加功能,比如压缩、加密、杀毒之类的操作,这些附加操作没有先后顺序,比如你可以先压缩再加密,也可以先杀毒再压缩,等等。这些附加功能是可选的,有的客户要这些功能,有的不要,有的要其中的几种附加功能等等。怎么设计呢?第一种方案:直接修改这个独立的文件系统 MyFileSys,对于不同的客户实现不同的文

2014-08-19 14:02:22 277

转载 C++设计模式-Bridge桥接模式

作用:将抽象部份与它的实现部份分离,使它们都可以独立地变化。将抽象(Abstraction)与实现(Implementation)分离,使得二者可以独立地变化。桥接模式号称设计模式中最难理解的模式之一,关键就是这个抽象和实现的分离非常让人奇怪,大部分人刚看到这个定义的时候都会认为实现就是继承自抽象,那怎么可能将他们分离呢。《大话设计模式》中就Bridge模式的解释:手机品牌和软件是

2014-08-18 19:45:02 274

转载 Adapter适配器模式

作用:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。分为类适配器模式和对象适配器模式。系统的数据和行为都正确,但接口不符时,我们应该考虑使用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。想使用一个已经存在的类,但如果它的接

2014-08-18 19:13:30 231

bundle vim package

bundle vim

2016-07-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除