自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java中的对象有多大?

习惯了C与语言中精确计算一个结构体,一段数组的所占空间,在使用Java时就有些心里没底。虽然知道Integer比int要大,到底大多少?知道String比char[]要大,到底大多少?我甚至一度认为这是与JVM的GC相关的动态数字。 看了几篇针对性的文章,并做实验,有了明确的认识。对象内存布局String内存布局数组内存布局归纳成以下几个数字化的结论    一个Obje

2013-08-28 12:52:06 659

原创 What is serialVersionUID?

What is serialVersionUID?What is a serialVersionUID and why should I use it?两篇好文章把这个问题解释透彻了。1.  为什么需要这个serialVersionUID ? 版本控制。 Class A对象被序列化到文件,A升级至A' ,  文件中的内容被反序列化,转成A‘ ,你期望它报错吗?   2.  为什

2012-12-19 11:22:14 526

原创 Log4j 几个最佳实践

Log4j Best Practices印象深刻的几段:1.  Greppable Logs如果日志不能很好地被grep, 当然还包括被sort,被awk,被sed,那就是垃圾。错误日志除外,错误日志是给人看的。2.  Timestamps为什么秒这个级别不够? 没有一个日志系统可以保证日志的顺序和事件发生的顺序一致,当系统负载较重时,期间相差ms这个级别是常事,因此秒级的

2012-12-17 14:37:57 1168 1

原创 when reduce jobs start up?

24 Interview Questions & Answers for Hadoop MapReduce developers两个重要也很有趣的问题,第一,用户定义的任何一个reduce job在所有的map job结束之前都不会开始。第二,既然如此,我们为什么会看到Map%Complete还不足100%的时候,Reduce%Complete就开始5%或者10%了?  因为Reduce%Co

2012-12-13 16:11:26 447

转载 Splay Tree

    http://aleph0.clarku.edu/~achou/cs102/examples/bst_animation/SplayTree-Example.html    平衡二叉树的一种优化,值得注意的是,树种节点符合80-20的访问原则,这种优化的作用才能得以体现。    http://code.google.com/p/memcached-tag/    memcached-tag使用到了这种数据结构,显然,cache中的节点很符合这种原访问原则。    此外,memcached-tag是个

2010-10-26 19:53:00 434

转载 chmod -x chmod

    http://coolshell.cn/articles/3136.html#more-3136    语言级的最常用。    cp和tar有点意思。cp是借尸还魂,tar是自力更生。    其他的不懂,慢慢来懂。

2010-10-25 14:10:00 556

转载 29岁现象

     http://news.xinhuanet.com/forum/2006-09/01/content_5031415.htm      对其中这段深有同感:     “ 看书、学习注意力不集中,对外界事物的兴趣忽高忽低,设定的工作目标或高不可攀或放弃追求,对下属或要求过分或听之任之,对亲友不耐烦,对团队尤其是对上级经常抱怨牢骚,对待批评建议经常没有耐性甚至反应过分激烈,老虎屁股摸不得,经常比过去,讲排场慕虚荣,对自己过去的同学朋友羞于提起现在的职位或收入,内心经常将自己与认识不认识的姣姣者做不切实

2010-10-21 13:33:00 840

原创 protocolbuf的优势

文/kingkai       http://code.google.com/intl/zh-CN/apis/protocolbuffers/docs/overview.html      接口方面的设计,以往有如下三种常见设计。      1. 普通的“raw in-memory data structures ”方式,局限在于客户端和服务器端必须约定和遵循相同的格式。接口升

2010-10-19 15:48:00 2779

原创 epoll难以替代select

文/kingkai    http://www.kernel.org/doc/man-pages/online/pages/man4/epoll.4.html    epoll单纯对比select,优势可见。    但各产品线一般都有自身封装的基于select的XX_pool,在多线程的模型下,主进程只负责listen_fd的select并accept,将read_fd插入XX_pool中。各工作线程以加锁的方式获取XX_pool中剩余的read_fd并做相应处理。    这种模型相当于把轮询的负载转交给工

2010-10-19 14:17:00 1120 1

原创 fping-加强版的ping

    http://fping.sourceforge.net/    核心是支持批量地址的ping    1. 包括从文件中读取机器名或IP列表;    2. 包括对IP段(起始地址结束地址,netmask)两种形式;    3. 对于IP列表中的任一IP,采取轮询的形式,而不是阻塞;    4. 结果的格式可以定制。    对于服务器各类监控,的确很方便。

2010-10-18 18:16:00 662

原创 cachefly宣传单

     一个叫做cachefly的解决方案站点。    http://blog.cachefly.com/understanding-web-performance/    尽管是广告宣传,但浅显地说出了带宽的一些基本知识。Flash设计的也很亮。    不错!

2010-10-15 17:24:00 599

原创 mysqldump还原速度慢

文/kingkai          至少在mysql5.0.*的版本中,通过mysqldump的数据采用重定向的方式导入数据库,速度慢到不可忍受。       参考这篇文章 http://stackoverflow.com/questions/3002671/recreation-of-mysql-db-using-mysql-mydb-mydb-sql-is-really-slow

2010-10-12 19:31:00 2418

原创 tcprstat源码阅读感受

      Baron Schwartz自述:http://www.mysqlperformanceblog.com/2010/08/31/introducing-tcprstat-a-tcp-response-time-tool/      官网地址:http://www.percona.com/docs/wiki/tcprstat:start      一个非常不错的耗时统计工具,二次开发难度也不大。单进程,双线程(分别负责抓包和统计)。      为简化设计,源码中频繁使用到malloc/free。难

2010-09-27 20:57:00 796

原创 不包含重复数字的抽样算法

文/kingkai编程珠玑上关于抽样问题的章节,提出了很多随机从N个数中抽取M个数(不重复)的方法。这里一一进行分析,并给出部分推导。抽样广泛应用于工程实践中,在样本空间非常大时,性能的因素会显得非常明显。比如,总每日的检索Query中抽样不重复的100个。对于这个命题,如果不精心设计。很可能演变成很多粗糙的实现。Loop Nvoid genKnuth(int m, int n){int i;for(i = 0; i {                 if(bigrand()%(n-i) {cout m-

2010-09-27 11:17:00 2249

原创 #和##在宏替换中的作用

文/kingkaihttp://blog.csdn.net/haoel/archive/2009/05/18/4197010.aspx,其中的PUZZLE 4给出了一个关于宏的谜题。值得研究。#include #define f(a,b) a##b#define g(a) #a#define h(a) g(a)int main(){ printf("%s/n",h(f(1,2))); printf("%s/n",g(f(1,2))); return 0;}

2010-09-25 17:14:00 2194 3

原创 daemon进程实例分析

文/kingkai以下是memcache中的daemon启动的一段源码,基于这个例子,我们详细分析一下daemon启动的台前幕后。intdaemon(nochdir, noclose) int nochdir, noclose;{ int fd; switch (fork()) { case -1: return (-1); case 0: break; default: _exit(0

2010-09-25 15:33:00 647

原创 TIME_WAIT状态详细分析

    对于TCP通信中关闭连接时需要的四次握手,最值得一说的就是TIME_WAIT状态。    在阅读相关资料和实践的基础上,我对这个状态的总结是    1.  仅在主动关闭一段产生;    2.  设置SO_REUSEADDR选项需要在bind之前进行。    以下分别从客户端和服务器端来分析。    从客户端的角度来看。如果采用的是长连接,那么根本就不会有close的行为;如果采用的是短连接,那么重新connect时会临时分配随机端口,不会与之前处于TIME_WAIT端口冲突。    举例说明,在服务

2010-09-25 12:33:00 927

空空如也

空空如也

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

TA关注的人

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