- 博客(39)
- 收藏
- 关注
原创 TCP协议梳理
[color=violet][size=xx-large]1. TCP数据段格式[/size][/color]TCP数据段的格式如下图所示,其中每一格代表一个比特位。[img]http://dl2.iteye.com/upload/attachment/0123/1488/ade7793e-d845-305d-881f-2b57ce83d746.png[/img][color=vi...
2017-02-23 21:19:59 160
原创 IP协议(RFC791)梳理
[size=xx-large][color=blue]1. IP数据包格式[/color][/size]IP数据包格式如下图所示,其中每个短横线的长度代表1个比特位:[img]http://dl2.iteye.com/upload/attachment/0123/0549/011be9a4-0946-3d67-b505-65893297f1c0.png[/img][size=x-l...
2017-02-17 11:58:07 788
原创 基于3.0 RC2版本的Redis源码逻辑明细
[table]|源文件|方法|流程图|redis.c|main()|[url=http://dl.iteye.com/upload/picture/pic/132464/46f21856-e9b8-315d-b69d-1ef32ea2c759.png]流程图[/url]|redis.c|initServerConfig()|[url=http://dl.iteye.com/upload...
2015-03-23 10:45:53 170
原创 基于Client端一致性哈希的Redis Cache 集群方案设计
设计目标是高可用,易伸缩的RedisCache集群方案,Cache的应用可以允许Key丢失,但应当越少越好:[list][*]故障转移:某个Redis实例故障应当可以把负责的key转移到其他实例。故障实例保存的数据可能丢失(符合Cache应用场景需求)[*]动态水平伸缩:应当可以在运行时动态增加Redis实例,以达到容量水平扩容。水平扩容可能造成部分Cache Key丢失(符合Cach...
2015-01-27 15:11:37 175
原创 Redis持久化机制详解
Redis提供两种持久化机制,供用户灵活的选用、组合使用:[list][*]基于快照的持久化机制:rdb[*]基于日志的持久化机制:aof[/list][color=blue][size=xx-large]1.快照[/size][/color][color=blue][size=x-large]1.1 基于快照的持久化[/size][/color]基于快照的持久化(...
2015-01-23 20:01:55 131
原创 Redis集群解决方案比较
调研比较了三个Redis集群的解决方案:[table]|系统|贡献者|是否官方Redis实现|编程语言|Twemproxy|Twitter|是|C|Redis Cluster|Redis官方|是|C|Codis|豌豆荚|否|Go+C[/table][color=blue][size=xx-large]1.基本架构[/size][/color][color=blu...
2015-01-19 10:30:13 437
原创 数据库隔离级别详解
数据库的隔离性是数据库ACID保证中的重要组成部分。应当区分开原子性与隔离性的不同含义,为了实现原子性有悲观/乐观的两种并发控制策略,在原子性的基础上,实现隔离性,既可以使用悲观的并发控制策略,也可以使用乐观的并发控制策略。不同的应用场景会对数据库隔离性有不同的要求,越高的隔离性可以越高程度的保证数据的一致性,但是会带来越多的性能开销。反之,降低隔离性要求将会牺牲一些数据一致性,但是可以提...
2014-11-27 15:27:30 138
原创 三个并发编程工具包java.util.concurent/locks/atomic的概念厘清
Java提供了三个并发编程功能包,它们是:[list][*]java.util.concurent[*]java.util.concurent.locks[*]java.util.concurent.atomic[/list]本文意在厘清这三个包的概念结构,关于具体功能的实现,将另文详记。[color=blue][size=xx-large]1. Overvie...
2014-11-24 18:02:11 165
原创 解析命令行参数的两种方式
[color=blue][size=xx-large]方式1[/size][/color]最Naive的实现,即按照参数的输入顺序进行依次解析,例如:[code="java"] private void parseArguments(String[] args) { dbIP = args[0]; dbName = args[1]; threadNo = Inte...
2014-11-03 11:36:11 634
原创 非阻塞、无锁、无等待算法的核心与区别
本文是一系列并发编程文章的学习笔记之一,意在厘清非阻塞、无锁、无等待着三个概念。[color=blue][size=xx-large]非阻塞[/size][/color]阻塞是操作系统层面的概念,发生阻塞的准确含义为:当前执行上下文通过调用操作系统的接口,使自己进入等待某一事件发生的状态。在这种等待中,该上下文将被从操作系统的调度队列中移除,而将不获得任何CPU执行时间。直到等待的事件...
2014-10-22 17:37:17 442
原创 关于Java反射的性能问题及其常见的处理方法
调用Java的反射API是有较高的性能开销的,这方面的性能比较文章较多,在此不赘述。[color=blue][size=xx-large]原因[/size][/color]纠其原因,性能的开销主要在两方面:[color=blue][size=large]1.产生了Dynamic Resolve[/size][/color]无论是通过字符串获取Class、Method还是Fiel...
2014-10-22 16:23:39 1895
原创 实现线程池的两种模式
[color=blue][size=xx-large]以下两种模式都可以用于实现线程池[/size][/color][list][*]模式1由各个Worker线程自己负责从TaskPool中获取Task。[*]模式2由1个Dispatcher线程不断遍历Worker线程数组来负责检查各个Worker线程的状态,如果状态符合则分配新的任务。[/list][b][size=la...
2014-10-22 15:52:03 342
原创 如何在运行时获取Java Class的载入路径
以下代码可以在运行时获取Java Class的磁盘路径:[code="java"].class.getProtectionDomain().getCodeSource().getLocation()[/code]
2014-10-15 18:18:04 234
原创 以单一率(Single Propotion)为例的Meta分析原理详解
[color=blue][size=xx-large]1. 什么是Meta分析[/size][/color]Meta分析是指将多个研究结果整合在一起的统计方法,所以又叫整合分析或荟萃分析。[url=http://en.wikipedia.org/wiki/Meta-analysis]脑补通道->[/url][color=blue][size=xx-large]2.Meta分析的步骤...
2014-08-15 12:17:38 3748
原创 Java Instrumentation浅析
[size=xx-large][color=blue]原委[/color][/size]利用[url=http://en.wikipedia.org/wiki/Optimistic_concurrency_control]乐观的并发控制[/url]在共享内存的粒度上,所构建的高层的同步控制机制就称作Software Transactional Memory(STM)。命名渊源起于:...
2014-08-13 13:53:40 160
原创 文章目录
[color=blue][align=center][size=xx-large]文章目录[/size][/align][/color]因为ITEYE的文章分类功能不太灵活,所以把所有的文章都集中到这里,方便文章灵活的可扩展的分类整理。[i][color=darkred][size=xx-large]Java[/size][/color][/i][url=http://chong-...
2014-08-02 15:49:20 94
原创 Java内存模型的形象解释
[color=blue][size=xx-large]0.什么是Java内存模型:这篇文章讨论什么不讨论什么[/size][/color]内存模型规定了在给定程序的条件下,某个特定的程序执行过程是否合法。内存模型只是Java运行环境与上层Java程序员之间关于内存操作语义的约定,并不规定Java内存管理的具体实现。这篇文章也只是试图用易于理解的方式描述这种约定,而不会讨论内存模型约束下内存...
2014-03-23 17:36:31 150
Intel80386知识总结: 协处理器与多处理器
[color=gray]====================================================================本文用于汇总整理Intel80386对协处理器与多处理器的支持,参考文献:[list][*]《INTEL 80386 programmer's reference manual 1986》[/list]本文是系列文章...
2013-10-08 21:50:38 711
Intel80386知识总结: 处理器初始化
[color=gray]====================================================================本文用于汇总整理Intel80386初始化的相关信息,参考文献:[list][*]《INTEL 80386 programmer's reference manual 1986》[/list]本文是系列文章[url=...
2013-10-08 20:34:27 275
Intel80386知识总结: 中断与异常机制
[color=gray]====================================================================本文用于汇总整理Intel80386的中断与异常机制,参考文献:[list][*]《INTEL 80386 programmer's reference manual 1986》[*]《Intel® 64 and IA-...
2013-09-30 11:38:18 384
Intel80386知识总结: I/O系统
[color=gray]====================================================================本文用于汇总整理Intel80386的I/O系统相关知识,参考文献:[list][*]《INTEL 80386 programmer's reference manual 1986》[/list]本文是系列文章[ur...
2013-09-29 17:17:04 260
原创 Intel80386知识总结
[color=gray]====================================================================本文用于汇总整理Intel80386的体系结构及其提供的编程接口,参考文献:[list][*]《INTEL 80386 programmer's reference manual 1986》[/list]本文是系列文...
2013-09-29 11:41:34 273
Intel80386知识总结: 多任务支持
[color=gray]====================================================================本文用于汇总整理Intel80386的多任务支持功能,参考文献:[list][*]《INTEL 80386 programmer's reference manual 1986》[/list]本文是系列文章[url=...
2013-09-29 11:39:58 293
原创 Intel80386知识总结: 基本要素
[color=gray]====================================================================本文用于汇总整理Intel80386的系统架构中的基本要素,参考文献:[list][*]《INTEL 80386 programmer's reference manual 1986》[/list]本文是系列文章[u...
2013-09-22 20:14:20 211
原创 Java的消费者-生产者模型实现总结
[color=blue][size=xx-large]基于链表的生产者-消费者FIFO队列[/size][/color]queue是一个FIFO的链表队列,Producer负责生产QueueItem,一旦生产完成就添加到queue末尾。Consumer不停的consume queue中的QueueItem,若某一时刻consume完了就转入等待Producer生产新的QueueItem,一旦q...
2013-09-15 16:08:27 108
原创 Intel80386知识总结: 内存管理与访问保护
[color=gray]====================================================================本文用于汇总整理Intel80386的内存管理与访问保护机制,参考文献:[list][*]《INTEL 80386 programmer's reference manual 1986》[*][url]http://mc...
2013-09-14 15:21:07 301
原创 Java线程的中断机制
[color=blue][size=xx-large]线程RUNNABLE时的基本用法:[/size][/color][code="java"]for (int i = 0; i < inputs.length; i++) { heavyCrunch(inputs[i]); if (Thread.interrupted()) { // We've be...
2013-08-23 17:10:31 86
原创 Two's complement
[color=blue][size=xx-large]1.由补码计算其表示的实际数值[/size][/color][img]http://dl.iteye.com/upload/picture/pic/127267/43c4a0a3-3c5a-3d5e-b3f5-ab6aaf321013.png[/img][color=blue][size=xx-large]2.对数据使用补码编码[/...
2013-08-19 21:22:16 139
原创 Java的Nested Classes
[color=blue][size=xx-large]什么是Nested Class[/size][/color]在另一个Java类中定义的Java类,Inner Class(Non-static Nested Class)、Static Nested Class、Local Class、Anonymous Class和Lambda Expression都属于Nested Class。...
2013-07-04 16:50:23 84
原创 记录RednaxelaFX对JamVM性能图标的解释
zz: http://hllvm.group.iteye.com/group/topic/35391#239661下面这张性能评测表摘自开源轻量级JVM实现JamVM的网站(http://jamvm.sourceforge.net/),是JamVM的一幅性能评测图,请诸位大大指点这幅图中的"T2 JIT(asm interp)"和"Zero(cpp interp)"分别是什么意思?...
2013-03-02 21:37:24 215
原创 左值、右值、可修改左值、不可修改左值
Assignment: l-values and r-valuesSome languages use the idea of l-values and r-values. Lvalues are values that have addresses being programmatically accessible to the running program (e.g., via so...
2012-09-20 00:15:35 1598
原创 Java Instrumentation浅析
通过 JVM arguments 调用:[code="java"] Java -javaagent:youragent.jar 或者 -javaagent:youragent.jar=argument [/code]在试着运行指定的 main 之前使 Java 调用位于 youragent.jar 清单上的:[code="java"]public static void prema...
2012-09-06 20:45:22 123
原创 X桌面系统术语梳理
[code="java"]X Window System=X Window系统=X11=X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~图形视窗系统的规范与协议,只是工具套件及架構規範,本身並無實際參與運作的實體,所以必須有人依據此標準進行開發撰寫。 XOrg和XFree86~~~~~~~~~~~~~XFree86是X Window系统的其...
2012-08-25 21:23:55 136
原创 关于Java程序的编码
java的comments, identifiers, char类型数据 和 string literals使用unicode(utf-16,固定两字节)编码,所有其他elements in a program written in the Java programming language are formed from only ASCII characters单个char 16位只能...
2012-08-19 09:51:51 143
原创 C语言中的const和voliate关键字
[color=blue][size=large]const[/size][/color]:The qualifier const can be applied to the declaration of any variable to specify that its valuewill not be changed. For an array, the const qualifier s...
2012-08-14 10:23:40 679
原创 关于调用关系图(call graph)工具的资料收集
[color=blue][size=large]陈硕的Blog,很好的入门综述:[/size][/color]from:http://blog.csdn.net/solstice/article/details/488865绘制函数调用关系图对理解大型程序大有帮助。我想大家都有过一边读源码(并在头脑中维护一个调用栈),一边在纸上画函数调用关系,然后整理成图的经历。如果运气好一点,借助调试器...
2012-08-04 15:21:02 623
原创 静态链接(binutils的ld)与动态链接(glibc的ld-linux)
链接器(英语:Linker),又譯為鏈結器、連結器,是一个程序,将一个或多个由编译器或汇编器生成的目标文件外加库链接为一个可执行文件。所谓目标文件: Computer programs typically comprise several parts or modules; all these parts/modules need not be contained within a sin...
2012-07-25 20:32:15 627
原创 在栈上动态分配内存
在栈上动态分配内存使用函数alloca可以实现在栈上动态分配内存:The function alloca has the same calling sequence as malloc; however, instead of allocating memory from the heap, the memory is allocated from the stack frame ...
2012-07-19 15:54:36 562
原创 Nonlocal jump: longjmp 和 siglongjmp
In C, we can't goto a label that's in another function(跨stack frame). Instead, we must use the setjmp and longjmp functions to perform this type of branching.首先,在可能需要返回的点执行:[code="c"]#incl...
2012-07-19 15:25:43 110
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人