自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(183)
  • 收藏
  • 关注

原创 google test

github:https://github.com/smarr/googletesttoturial:https://code.google.com/p/googletest/wiki/Primer

2015-08-14 16:51:10 857

原创 文明之光阅读摘抄与思考

借着组里的经费买了一套文明之光,花了一个星期将书啃完,总得来说觉着第一本很赞,后两本质量有所下降,重复的话实在太多,总体评价8分,从事科研和互联网行业的推荐看下这本书。由于个人研究生期间更多做的是工程的东西,所以科研能力很弱,入职8个月来做科研的方法和思路非常不对,阅读第一本书后对科研的方法和思维上有了清晰的认识。埃及文明:          1. 文明与文化: 文明的

2014-12-29 01:13:47 2508

原创 近期要读的书

1.文明之光2.数学之美3.方法论4.如何阅读一本书5.三体

2014-12-26 16:16:12 569

原创 gdb调试技巧

set print element 0 设置打印全部内存信息

2014-10-27 18:24:35 694

转载 在 Mac OS X 终端里使用 Solarized 配色方案

相信长期浸泡在终端和代码的小伙伴们都有一套自己喜爱的配色方案。以前一直在用简单、适合阅读的 Terminal.app 配色方案,换到 MacBook Pro with Retina display 后发现这个配色时间看长了眼睛有点累。不断有人推荐 Solarized,看了一些截图,感觉还不错,决定试一下。Solarized 是目前最完整的 Terminal/Editor/IDE 配色项

2014-08-08 11:20:31 660

转载 NUMA架构

最近在学习.NET的并行计算技术,学到一个服务器NUMA架构,NUMA架构在中大型系统上一直非常盛行,也是高性能的解决方案,在系统延迟方面表现都很优秀。Windows一向都没有在NUMA架构上有多少表现机会,AMD的多路系统大多也会用在UNIX/Linux上。Intel如期进入了NUMA架构的怀抱,英特尔最新的服务器处理器至强5500是一项重大的结构变革。与上一代至强处理器相比,至强5500采用了

2014-05-04 15:35:40 708

转载 玩转CPU Topology

先温习几个概念请原谅对部分术语笔者直接引用了wikipedia上的英文解释,因为哥实在做不到比wikipedia上更准确描述。我会试着解释部分的术语,并在本节的最后梳理一下这些术语之间的关系。注意,笔者对由于不准确的描述导致的性能下降,进程crash等任何问题不承担任何责任☺NUMA:Non-Uniform Memory Access (NUMA) is a computer memo

2014-05-04 10:27:36 841

转载 CPU的缓存L1,L2,L3

L1,L2,L3 指的都是CPU的缓存,他们比内存快,但是很昂贵,所以用作缓存,CPU查找数据的时候首先在L1,然后看L2,如果还没有,就到内存查找一些服务器还有L3 Cache,目的也是提高速度。高速缓冲存储器Cache是位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在Cache中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量

2014-05-04 09:57:56 1222

原创 cuda文件编译成动态库

想把几个cuda的源文件搞成一个动态库,

2014-04-15 15:11:12 1962 1

转载 Linux 多线程

Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别。不注意这些 Linux 上的一些开发陷阱,常常会导致程序问题不穷,死锁不断。本文中我们从 5 个方面总结出 Linux 多线程编程上的问题,并分别引出相关改善的开发经验,用以避免这些的陷阱。我们希望这些经验可以帮助读者们能更好更快的熟悉 Linux 平台的多线程编程。我们假设读

2014-04-14 15:18:27 653

转载 pthread_cond_wait 与 pthread_cond_signal 用法(惊群效应)

pthread_mutex_t qlock;pthread_cond_t  qready;/************pthread_cond_wait()的使用方法**********/pthread_mutex_lock(&qlock);    /*lock*///等待某资源,并以qready作为条件通知我们pthread_cond_wait(&qready, &qlock); /*blo

2014-04-14 13:43:30 3150

转载 网络字节序、主机字节序、大端与小端

网络字节序与主机字节序不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序最常见的有两种1. Little endian:将低序字节存储在起始地址2. Big endian:将高序字节存储在起始地址LE little-endian最符合人的思维的字节序地址低位存储值的低位地址高位存储值的高位怎么讲是最符合人的思维的字节序,是因为从人的第一观感来

2014-04-14 09:41:21 761 1

原创 如何读书

根据应用场景读书,不必穷尽某一门知识。现在网络信息太过冗余,不可能做到面面俱到。                      读书,不应该为了知识而读书,这样就偏离了知识的本意。对自己没有用处的知识,耗费时间也许可以掌握到,但是没有意义。          带着目的读书,带着疑问去读书,以后不能这样根据兴趣读书。          以后读书要分为两个方向:技术应用与处事。对技术的追求

2014-03-17 15:06:25 575

转载 常见网络编程问题

1:tcp和udp的区别2:流量控制和拥塞控制的实现机制3:滑动窗口的实现机制4:多线程如何同步。5:进程间通讯的方式有哪些,各有什么优缺点6:tcp连接建立的时候3次握手的具体过程,以及其中的每一步是为什么7:tcp断开连接的具体过程,其中每一步是为什么那么做8:tcp建立连接和断开连接的各种过程中的状态转换细节9:epool与select的区别10:epoo

2013-09-27 17:00:41 1932 1

转载 CSRF攻击

一.CSRF是什么?  CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。二.CSRF可以做什么?  你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取

2013-08-20 15:38:31 660

转载 扩展Django:实现自己的manage命令

我们都用过Django的django-admin.py和manage.py。django-admin.py是一个命令行工具,可以执行一些管理任务,比如创建Django项目。而manage.py是在创建每个Django project时自动添加在项目目录下的,只是对manage.py的一个简单包装,其功能是将Django project放到sys.path目录中,同时设置DJANGO_SETTING

2013-08-06 11:25:30 680

转载 w+与r+等的区别

r+: Open for reading and writing.  The stream is positioned  at  the beginning of the file.w+:Open for reading and writing.  The file is created  if  it  does not  exist, otherwise it is truncated

2013-08-06 10:15:20 2063

原创 django框架搭建

折腾N久,终于搞定了。1. 安装apache2.安装easy_install,用于安装django3.apt 安装 libapache2-mod-wsgi4.修改/etc/apache2/httpd.confWSGIScriptAlias / /path/to/mysite/apache/django.wsgi 例如我在/www/var下有个

2013-08-04 13:08:10 704

转载 配置Linux环境 easy_install的安装及使用

easy_install与yum类似,使用easy_install,可以轻松在pypi软件库里面搜索python各类软件安装easy_install比较简单,如果配置好yum,就可以直接搜索python-setuptoolsyum –y install python-setuptools安装完python-setuptools之后,还需要安装python-devel

2013-08-02 16:48:14 1013

转载 为Python添加默认模块搜索路径

把自己写的模块加入到python默认就有的搜索路径:在python/lib/python2.5/site-packages目录下建立一个 xxx.pth的文件,写入自己写的模块所在的路径即可

2013-08-02 12:51:39 1988

转载 screen命令

你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为他们执行的时间太长了。必须等待它执行完毕,在此期间可不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。元凶:SIGHUP 信号让我们来看看为什么关掉窗口/断

2013-07-29 16:52:42 633

转载 Shell 变量

Shell 变量1、创建子进程的时候,环境变量拷贝一份到子进程的内存栈空间,因此子进程里对环境变量的修改,并不影响父进程内存栈空间的值;2、常用内置变量$? —— 上一个命令的返回值$# —— 传递给shell脚本的命令行位置参数的个数$0 —— 调用的shell脚本的名称$n —— 第n个位置参数的值,n从1开始,如 $1, $

2013-07-29 16:40:45 552

转载 Linux运维常用命令

1.删除0字节文件find -type f -size 0 -exec rm -rf {} \;2.查看进程按内存从大到小排列ps -e   -o "%C   : %p : %z : %a"|sort -k5 -nr3.按cpu利用率从大到小排列ps -e   -o "%C   : %p : %z : %a"|sort   -nr4.打印说cache里的UR

2013-07-13 08:15:00 924

转载 线程与进程

一.定义关于进程、轻量级进程、线程、用户线程、内核线程的定义,这个很容易找到,但是看完之后你可以说你懂了,但实际上你真的明白了么?在现代操作系统中,进程支持多线程。进程是资源管理的最小单元;而线程是程序执行的最小单元。一个进程的组成实体可以分为两大部分:线程集合和资源集合。进程中的线程是动态的对象;代表了进程指令的执行。资源,包括地址空间、打开的文件、用户信息等等,由进程内的线程共

2013-06-28 13:51:52 770

转载 select,epoll,poll比较

selectselect本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是:1 单个进程可监视的fd数量被限制2 需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传递该结构时复制开销大3 对socket进行扫描时是线性扫描pollpoll本质上和select没有区

2013-06-27 08:40:26 555

转载 使用gdb调试多线程程序总结

一直对GDB多线程调试接触不多,最近因为工作有了一些接触,简单作点记录吧。 先介绍一下GDB多线程调试的基本命令。 info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。 thread ID 切换当前调试的线程为指定ID的线程。 break thread_test.c:123 thread all在

2013-06-21 17:26:25 513

转载 ffmpeg 制定精确码率

FFmpeg是Ubuntu下強大的視頻、音頻編解碼工具. x264可以編碼出高質量的h.264視頻,iPad必須要h.264編碼或mpeg-4編碼的視頻才能正常播放.由於版權方面尚未確定,雖然全國很多網站都在使用h.264編碼,但將來很有可能會被版權問題所困擾,所以Ubuntu官方源默認是不提供h.264編碼的,這就需要我們手工編譯安裝FFmpeg的h.264支持,使之能夠編碼出MP4文件.

2013-06-06 15:33:21 1794

转载 HTTP深入浅出 http请求

HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务,HTTP目前协议的版本是1.1.HTTP是一种无状态的协议,无状态是指Web浏览器和Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后Web服务器返回响应(

2013-05-30 16:33:14 543

转载 TCP粘包与UDP数据报边界

UDP丢包是因为数据包在传送过程中丢失了 而TCP是基于流式的发送 并且存在丢包重发机制 TCP是可靠连接而UDP是不可靠的这个我就不多说了关于TCP的粘包 正是由于TCP是流式传送的 也就是连接建立后可以一直不停的发送 并没有明确的边界定义 而你用UDP发送的时候 是可以按照一个一个数据包去发送的 一个数据包就是一个明确的边界而TCP并没有数据包的概念 是完全流式的 他会开辟一个缓冲区 发送

2013-05-29 19:21:54 1103

转载 TCP字节流与UDP数据报

“TCP是一种流模式的协议,UDP是一种数据报模式的协议”,这句话相信大家对这句话已经耳熟能详~但是,“流模式”与“数据包模式”在编程的时候有什么区别呢?以下是我的理解,仅供参考!1、TCP打个比方比喻TCP,你家里有个蓄水池,你可以里面倒水,蓄水池上有个龙头,你可以通过龙头将水池里的水放出来,然后用各种各样的容器装(杯子、矿泉水瓶、锅碗瓢盆)接水。上面的例子中,往水池里倒几次水和接几

2013-05-29 19:12:07 834

转载 UDP的应用范围、与TCP之比较

我们知道,UDP协议的一些缺陷,它本身是一个不可靠的协议。但是很多地方却又要使用这个协议。那么我们就来具体讲解一下UDP协议应用的相关内容。让我们看看它的一些应用范围,以及是如何弥补缺陷的。  UDP协议应用场合与服务  UDP提供的服务是不可靠的、无连接的服务,UDP适用于无须应答并且通常一次只传送少量数据的情况。由于UDP协议在数据传输过程中无须建立逻辑连接,对数据报也不进行检查,因此

2013-05-29 17:09:02 2633

转载 TCP 和UDP的区别

TCP与UDP区别TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保

2013-05-29 17:08:02 789

转载 使用Gnu gprof进行Linux平台下的程序分析

Gprof功能:打印出程序运行中各个函数消耗的时间,可以帮助程序员找出众多函数中耗时最多的函数。产生程序运行时候的函数调用关系,包括调用次数,可以帮助程序员分析程序的运行流程。有了函数的调用关系,这会让开发人员大大提高工作效率,不用费心地去一点点找出程序的运行流程,这对小程序来说可能效果不是很明显,但对于有几万,几十万代码量的工程来说,效率是毋庸置疑的!而且这个功能对于维护旧代码或者是分析Op

2013-05-29 15:52:57 618

转载 Catalan数(卡特兰数)

卡特兰数:规定h(0)=1,而h(1)=1,h(2)=2,h(3)=5,h(4)=14,h(5)=42,h(6)=132,h(7)=429,h(8)=1430,h(9)=4862,h(10)=16796,h(11)=58786,h(12)=208012,h(13)=742900,h(14)=2674440,h(15)=9694845·····················通项公式为:

2013-05-24 20:12:47 603

转载 判断一个单链表是否有环及环的链接点

给定一个单链表,只给出头指针h:1、如何判断是否存在环?2、如何知道环的长度?3、如何找出环的连接点在哪里?4、带环链表的长度是多少? 解法:1、对于问题1,使用追赶的方法,设定两个指针slow、fast,从头指针开始,每次分别前进1步、2步。如存在环,则两者相遇;如不存在环,fast遇到NULL退出。2、对于问题2,记录下问题1的碰撞点p,slow、fast从该点

2013-05-24 16:41:39 515

转载 快速恢复与快速重传算法

拥塞避免算法的修改建议1 9 9 0年提出 [Jacobson 1990b]。在介绍修改之前,我们认识到在收到一个失序的报文段时, TCP立即需要产生一个ACK(一个重复的ACK)。这个重复的ACK不应该被迟延。该重复的ACK的目的在于让对方知道收到一个失序的报文段,并告诉对方自己希望收到的序号。由于我们不知道一个重复的ACK是由一个丢失的报文段引起的,还是由于仅仅出现了几个报文段的重新排

2013-05-22 10:17:19 712

转载 TIME_WAIT 2MSL保持的必要性

Q: 在客户机/服务器编程中(TCP/SOCK_STREAM),如何理解TCP自动机 TIME_WAIT 状     态?   A: W. Richard Stevens   下面我来解释一下 TIME_WAIT 状态,这些在> 中2.6节解释很清楚了。   MSL(最大分段生存期)指明TCP报文在Internet上最长生存时间,每个具体的TCP实现 都必须选

2013-05-21 16:24:59 1437

转载 strcpy考虑重叠

考虑了内存重叠的字符串复制函数char * strcpy(char *dest, char *src){char *d = dest; //backup inputchar *s = src;int count = 0;assert(dest); //非空指针检查assert(src);if(src == dest)retur

2013-05-15 15:39:38 631

转载 Crontab

一.  Crontab介绍        crontab命令的功能是在一定的时间间隔调度一些命令的执行。 1.1 /etc/crontab 文件       在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。       如:[root@dave ~]# cat /etc/crontabSH

2013-05-14 15:44:14 490

转载 几种排序的直观解释

1 快速排序介绍: 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时间的二次方项之可

2013-05-14 14:30:39 508

空空如也

空空如也

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

TA关注的人

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