- 博客(113)
- 收藏
- 关注
原创 TCP_NODELAY
TCP_NODELAY和TCP_CORK基本上控制了包的“Nagle化”,这里我们主要讲TCP_NODELAY.Nagle化在这里的含义是采用Nagle算法把较小的包组装为更大的帧。JohnNagle是Nagle算法的发明人,后者就是用他的名字来命名的,他在1984年首次用这种方法来尝试解决福特汽车公司的网络拥塞问题(欲了解详情请参看IETF RFC 896)。他解决的问题就是所谓的silly
2014-10-29 19:13:03
641
原创 Linux下性能的几个内存指标
在Linux下面,查看一个进程的内存使用我们可以下面的命令来实现,只需把其中的[pid]换成进程实际的pid。# cat /proc/[pid]/status为了方便,我们把查找pid和看内存整合成一条命令,后面这将是我们唯一的测试工具。cat /proc/`ps -ef|grep hello | grep -v grep | awk '{print $2}'`/status | gr
2014-10-29 18:56:28
1014
原创 github初始化
git config --global user.name="jinmengzhe"git config --global user.email "mengzhe.jin@foxmail.com"git config --lisssh-keygen -t rsa -C "mengzhe.jin@foxmail.com"git clone git@github.com:mengzhe
2014-10-29 18:42:56
1393
转载 IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)
当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link 。写完之后发现很多人都很喜欢,我还是非常开心的,也说明这个问题确实困扰了很多人。随着学习的深入,渐渐的感觉原来的理解有些偏差,但是还是没引起自己的重视,觉着都是一些小错误,无伤大雅。直到
2014-10-28 20:41:29
406
转载 LSM-Tree--BigTable 的理论模型
转载以下2篇文章http://bofang.iteye.com/blog/1676698LSM-tree主要目标是快速地建立索引。B-tree是建立索引的通用技术,但是,在大并发插入数据的情况下,B-tree需要大量的磁盘随机IO,很显然,大量的磁盘随机IO会严重影响索引建立的速度。特别地,对于那些索引数据大的情况(例如,两个列的联合索引),插入速度是对
2014-10-27 23:13:42
688
转载 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究
http://blog.youkuaiyun.com/bluishglc/article/details/7612811
2014-10-27 23:11:00
557
转载 tcp粘包分析
http://blog.youkuaiyun.com/zhangxinrun/article/details/6721495这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下: 一 .两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再
2014-09-29 16:29:13
402
转载 Apache Thrift - 可伸缩的跨语言服务开发框架
http://www.ibm.com/developerworks/cn/java/j-lo-apachethrift/
2014-09-29 16:11:43
392
转载 几种线程池的实现算法分析
1. 前言在阅读研究线程池的源码之前,一直感觉线程池是一个框架中最高深的技术。研究后才发现,线程池的实现是如此精巧。本文从技术角度分析了线程池的本质原理和组成,同时分析了JDK、Jetty6、Jetty8、Tomcat的源码实现,对于想了解线程池本质、更好的使用线程池或者定制实现自己的线程池的业务场景具有一定指导意义。2. 使用线程池的意义复用:类似WEB服务器等系统,
2014-09-29 15:51:12
454
原创 Siege压力测试使用注意事项
1 ip端口后面需要加siege -c 1 -t 1 http://10.108.72.169:8082/?reqtype=1\&userid=ffec531aed13d976261df2d0af021709
2014-09-18 20:10:14
548
原创 Eclipse安装Maven插件和扩展、直接从svn以maven形式check out项目
安装maven插件从eclipse 3.6开始,eclipse有一个marketplace,这个类似现在手机的app store一样,可以在其中检索相关插件,直接安装,打开help-->eclipse marketplace-->popular,一般第一个就是maven插件,点击install即可。安装maven扩展插件当我们从svn上下载一个maven的工程时
2014-07-29 19:35:30
1102
原创 在Windows上安装Maven
下载安装文件、注意下载bin这个:http://apache.dataguru.cn/maven/maven-3/3.2.2/binaries/apache-maven-3.2.2-bin.zip解压后直接放在D:\Maven-3.2.2下即可。设置一下环境变量:在环境变量--系统变量里设置,和jdk设置类似:M2_HOME=D:\Maven-3.2.2Path
2014-07-28 19:00:52
469
原创 Redis在windows下的安装使用
下载的windows版本是redis-2.0.2,解压到D盘下:D:\redis-2.0.2进到该目录下,有下列文件: redis-server.exe:服务程序 redis-check-dump.exe:本地数据库检查 redis-check-aof.exe:更新日志检查 redis-benchmark.exe:性能测试,用
2014-07-24 11:14:46
2538
原创 Linux基础学习-管道命令
就如同前面所说的, bash 命令执行的时候有输出的数据会出现! 那么如果这群数据必需要经过几道手续之后才能得到我们所想要的格式,应该如何来设定? 这就牵涉到管线命令的问题了 (pipe) ,管线命令使用的是『 | 』这个界定符号! 另外,管线命令与『连续下达命令』是不一样的呦! 这点底下我们会再说明。底下我们先举一个例子来说明一下简单的管线命令。 假设我们想要知道 /etc/ 底下
2014-07-16 17:21:59
531
原创 Linux基础学习-数据流重定向
数据流重导向就是将某个指令执行后应该要出现在屏幕上的数据, 给他传输到其它的地方,例如档案或者是装置 (例如打印机之类的!)!这玩意儿在 Linux 的文字模式底下可重要的! 尤其是如果我们想要将某些数据储存下来时,就更有用了!一般来说,如果你要执行一个指令,通常他会是这样的: 我们执行一个指令的时候,这个指令可能会由档案读入资料,经过处理之后,再将
2014-07-16 17:21:12
519
原创 Linux基础学习-Shell的使用环境
是否记得我们登入主机的时候,屏幕上头会有一些说明文字,告知我们的 Linux 版本啊什么的, 还有,登入的时候,我们还可以给予使用者一些讯息或者欢迎文字呢。此外, 我们习惯的环境变量、命令别名等等的,是否可以登入就主动的帮我设定好? 这些都是需要来注意的。另外,这些设定值又可以分为系统整体设定值与各人喜好设定值, 仅是一些档案放置的地点不同啦!这我们后面也会来谈一谈的!
2014-07-16 17:20:34
553
原创 Linux基础学习-命令别名与历史指令
一 命令别名设定: alias, unalias命令别名是一个很有趣的东西,特别是你的惯用指令特别长的时候!还有, 增设预设的属性在一些惯用的指令上面,可以预防一些不小心误杀档案的情况发生的时候! 举个例子来说,如果你要查询隐藏档,并且需要长的列出与一页一页翻看,那么需要下达『 ls -al | more 』这个指令,我是觉得很烦啦! 要输入好几个单字!那可不可以使用 lm 来简化呢?!
2014-07-16 17:19:46
666
原创 Linux基础学习-Bash Shell简介
Bash shell系列里,由变量谈起,先讲到环境变量的功能与修改的问题, 然后会继续提到历史指令的运用。接下来,就会谈一下『数据流重导向』这个重要概念, 最后就是管线命令的利用!一 Bash shell简介管理整个硬件的其实是核心 (kernel),一般使用者 (user) 则是以 shell 来跟核心沟通~ 我们常常提到的 shell 其实是比较狭隘的
2014-07-16 17:18:09
370
原创 Linux基础学习-Shell变量的丰富功能
一 Shell变量的取用与设定,变量规则 由于系统需要一些变量来提供他数据的存取,所以就有一些所谓的『环境变量』 需要来读入系统中了!这些环境变量例如 PATH、HOME、MAIL、SHELL。为了区别与自订变量的不同,环境变量通常以大写字符来表示。 利用 echo 这个指令来取用变量, 变量在被取用时,前面必须要加上 $ 才行: [root@linux ~]#
2014-07-16 17:16:29
518
原创 Linux基础学习-文件和目录管理命令
1. 目录与路径 1.1 相对路径与绝对路径 绝对路径:路径的写法『一定由根目录 / 写起』,如:/usr/share/doc 这个目录。 相对路径:路径的写法『不是由 / 写起』,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: 『cd ../man』这就是相对路径的写法啦!相对路径意指『相对于目前工作目录
2014-07-16 17:15:42
424
原创 Linux基础学习-磁盘与文件系统的组织和原理
这一章主要是原理性的,介绍了Linux文件系统的运作原理。涉及到很多计算机组成和操作系统的原理性知识,这部分知识很多都忘了,在这里复习下。 我们只看本章第1,2节。-----------------------------------------------------------------------------------------------------------
2014-07-16 17:14:29
565
原创 Linux基础学习-属性与权限控制
1 多用户多任务-->需要权限控制: 存取方式:owner(所有者) group(组) other(其他) 档案属性:通过档案属性的设置来控制以上三种方式的访问权限2 重点档案属性的格式和各项字段含义 ////实践 用ls -al 以长格式的形式查看家目录下的档案: 每一行代表了一个档案属性所具有的内
2014-07-16 17:13:25
468
原创 Linux基础学习-Linux开关机命令
1 由于 Linux 在运作的过程中,会有很多的程序常驻在内存中来执行,此外, 由于 Linux 的磁盘使用效能比较高,利用了异步的磁盘/内存数据传输的模式, 因此, Linux 系统是很怕不正常开关机的!2 Linux是多任务多用户的系统打开终端:jmz@JMZ-desktop:~$ jmz:当前用户名后面是计算机名打开后默认在当前用户的家目录下,~代表/h
2014-07-16 17:12:36
433
原创 ubuntu安装总结
由于装得双系统,可能是电源管理器和ubuntu不兼容,在更新后发现关机和重启都不正常,系统已关闭,但电源不能正常断开,需要强制关机,于是又重新装了一次。在这里列出几个基本问题吧:1 主分区,扩展分区,逻辑分区的概念上一篇转载的介绍过了,例如大多数人的系统都是C,D,E,F四个盘,C盘是一个主分区(系统分区),不能再分。D,E,F是由一个扩展分区划分出的三个逻辑分区。
2014-07-16 17:11:56
421
原创 Linux基础学习-Linux系统分区及挂载点
一、关于Linux的分区情况 虽然硬盘分区表中最多能存储四个分区,但我们实际使用时一般只分为两个分区,一个是主分区(Primary Partion)一个是扩展分区(extended partition)两种,主分区可以马上被使用但不能再分区,扩展分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区。那么由扩充分区再分 下去的是什么呢?它就是逻辑分区(Logical Par
2014-07-16 17:08:42
414
原创 贪心算法-Dijkstra单源最短路径
暑假写的,主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。描述就不写了,看相关书籍吧。Dijkstra是一个贪心算法。package Section9; /*第九章 贪婪算法 Dijkstra单源最短路径*/ public class Dijkstra {
2014-07-16 17:06:34
1034
原创 C/C++练手-逆转链表
正确写法:Node* reverse(Node* head){ Node* current = head; Node* reversList = null; while(current) { /*将当前节点取出原链表迅速改变cur
2014-07-16 17:03:23
677
原创 贪心算法-哈夫曼树
贪心的思想很简单,关键在于用一个什么样的结构来实现贪心过程。package Section9;import java.util.Queue;import java.util.Iterator;import java.util.LinkedList;/*第九章 贪婪算法 Huffman编码*/public class Huffman { /** * @para
2014-07-16 17:02:36
1089
原创 详解sizeof与strlen
由以下几个例子我们说明sizeof和strlen之间的区别: (1) char* ss ="0123456789"; sizeof(ss)为4, ss是指向字符串常量的字符指针 strlen(*ss)为1,*ss是第一个字符 (2) char ss[] = "0123456789"; sizeof(ss)为11, ss是数组,计算到'\0'的位置,因此是(10+1)
2014-07-16 17:00:29
447
原创 字符数组,字符指针,字符串常量以及其sizeof的一些总结
1. 以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符。如在代码中写"abc",那么编译器帮你存储的是"abc\0"。2. "abc"是常量吗?-----------注意字符串的存储形式答案是有时是、有时不是。不是常量的情况:"abc"作为字符数组初始值的时候就不是,如:char str[] = "abc";因为定义的
2014-07-16 16:59:07
449
原创 操作系统的一些基本概念
1,几种进程间的通信方式# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为
2014-07-16 16:55:24
671
原创 动态规划6-LCS(最长公共子序列)
继续动态规划O(∩_∩)O~暑假之前就写了的,只是去实习了,没来及贴上来。关于动态规划的基础知识,参见算法与数据结构之前的文章,(其实我也要再看看,当时理解的自认为还比较深刻,现在又忘得差不多了)LCS问题描述,就不说了,网上一大堆。如果看了我前面的文章,怎样来用动态规划解决,也应该很简单了。不废话,动态规划的难点在于问题刻画和发现最优子结构,以及怎样逆向思维(
2014-07-16 16:54:21
460
原创 标准C++的4个类型转换符使用场景
2 标准C++的类型转换符使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。2.1 static_cast用法:static_cast ( exdivssion )该运算符把exdivssion转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它
2014-07-16 16:53:28
1135
原创 设计模式-Singleton 单例模式
单例模式的概念:单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。关键点:1)一个类只有一个实例 这是最基本的2)它必须自行创建这个实例3)它必须自行向整个系统提供这个实例-----------------------------------------
2014-07-16 16:53:08
400
原创 Java中的String你真的理解了吗?
从一个博客上看到的6个题,先看看吧,如果都会了,这部分的知识就掌握的不错啦!输出结果在代码注释后面:test1:package StringTest;public class test1 { /** * @param args */ public static void main(String[] args){ String
2014-07-16 16:49:33
464
原创 设计模式-Simple Factory 简单工厂模式(静态工厂)
基本概念:1) Simple Factory模式属于创建型模式,2) 简单工厂模式是由一个工厂(注意是一个!)对象决定创建出哪一种产品类的实例(例如你到肯德基说你要鸡腿,要薯条,要饮料还是,,,这时肯德基是一个工厂,客户端只需要点明自己要什么就行)3)实现方式的实质:由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例
2014-07-16 16:49:14
462
原创 关于Java finally的一个使用
alibaba一道笔试题:public class TestTryCatch { /** */ public static void main(String[] args) { System.out.println("i的值为。。。" + new TestTryCatch().test()); } private int test(
2014-07-16 16:46:48
409
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人