代码改变世界

好久没写博客,所以在谷歌和百度上搜"aga"的时候我的博客已经不再在搜索结果的第一条里,只能搜"aga-j"。

2012-01-05 11:23 by Aga.J, 335 阅读, 0 推荐, 收藏, 编辑
摘要:有空吧 阅读全文

疯人疯语

2011-12-02 19:51 by Aga.J, 511 阅读, 0 推荐, 收藏, 编辑
摘要:[1] 时代应该往Web App和Web Os发展,但是乔布斯的出现,带着消费者回到了本地app时代,更加可笑的是应用商店死灰复燃,而消费者只是一群羊羔,乔布斯带着它们吃草。[2011-12-02 aga][2] 从上大学开始懂得思考的时候起(以前上高中初中都是读好书就行),我就一直渴望有一个可以被我尊称为老师的人,他欣赏我,挖掘我的才能,教会我很多东西,影响我的人生观价值观,影响我的一生,但是这个人并不好找. [2011-12-06 aga][3] 为什么现在亚马逊也不整点类似团购的东西出来,从亚马逊领导人一贯的作风可以看出. [2011-12-10 aga][置顶]我还是忍不住想赞下自己的 阅读全文

thttpd源码分析

2011-11-16 17:12 by Aga.J, 1663 阅读, 0 推荐, 收藏, 编辑
摘要:最近多了个看源码的嗜好 main函数已经分析好了,找时间分离好代码,待续...thttpd Web Server模块thttpd Web Server#include<stdio.h>#include<sys/socket.h>#include<stdlib.h>#include<arpa/inet.h>#include<string.h>#include<unistd.h>#include<time.h>#include<sys/time.h>#include<errno.h>#inc 阅读全文

Memcached源码拆分:Slabs

2011-11-14 15:03 by Aga.J, 640 阅读, 0 推荐, 收藏, 编辑
摘要:个人笔记,不做详细介绍 Memcached的Slab内存分配策略其实很简单,通过首次使用预分配内存空间或者系统启动时预分配内存空间,避免多次malloc和free等函数调用。 除此以外,Slab对于内存碎片的处理策略是通过为每个slab制定固定的chunk大小,相邻(可以理解为逻辑上,也可以理解为物理上,源码里面实现的物理上)slab之间chunk大小为1+factor倍,这样每个slab可以适配适合chunk大小的内存空间请求。 而slab中的chunk的管理则是使用了很多延迟管理策略,它不会经常检查chunk是否超时,直到使用时才检查,它会把回收的chunk放到slot中,而不是free掉 阅读全文

完全傻瓜式搭建基于nodejs+express+vCloudFoundry的网站

2011-11-09 22:16 by Aga.J, 3151 阅读, 0 推荐, 收藏, 编辑
摘要:只需要按照下面的步骤,很傻的过一遍,就可以有一个自己的网站出来(傻瓜第一步)node.js+express+npm【参考文章:http://lingzuer.com/?p=138】(1)nodejs的安装(注意node.js的版本对后面的其他组件的安装影响很大)(2)npm的安装(node.js的包管理器,帮助node.js项目的安装和发布)(3)express的安装(优秀的框架,更高效开发node.js程序)安装过程中可能需要安装其他依赖包,或者出现安装错误,可以尝试自己下载源码后编译。(傻瓜第二步)node.js+express的简单实例【参考文章:http://shapeshed.com 阅读全文

Memcached源码拆分:Libevent_Thread

2011-11-04 17:01 by Aga.J, 1898 阅读, 0 推荐, 收藏, 编辑
摘要:个人笔记,不做详细介绍 最近看完Memcached的源码后总是忍不住再看一遍,虽然有些地方写得有点不是那么华丽,但是总感觉想从Memcached里面挖出一些东西来,所以就再看了其他人的关于Memached的源码的一些分析,加上自己对Memcached的理解,目前觉得Memcached的源码里有下面几部分可以好好学学: (1)SLAB内存分配策略 (2)线程模型 (3)Memcached通信协议 (4)Consistent Hashing (5)LRU策略 (6)UNIX domain,UDP,TCP客户端连接 (7)Libevent (8)Memcached的分布式 今天... 阅读全文

Tips For Reading Code

2011-10-24 01:00 by Aga.J, 273 阅读, 0 推荐, 收藏, 编辑
摘要:原文地址:http://c2.com/cgi/wiki?TipsForReadingCode总结一些比较适用的tips:1 构建并运行程序 可以从构建过程中和运行过程中认识到程序的内部构造。2 找到高层逻辑代码区域 跟着系统从头到尾跑一遍3 画一些流程图 清晰地展示系统运行流程4 仔细查阅引用的外部库函数调用 相当重要的一步5 利用好你的代码阅读工具 SourceInsight我用得很不爽,太丑了6 注释或者删除一些代码 阅读全文

libevent 和 memcached 源码学习

2011-10-20 21:16 by Aga.J, 650 阅读, 0 推荐, 收藏, 编辑
摘要:Libevent记录下学习日期和学习的东西Memcached发现一个日本人写的pdf,由浅到深,很好的入门资料。http://tech.idv2.com/2008/08/17/memcached-pdf/一个下午把memcached的源码的执行流程和memcached基本实现方法读懂了,memcached是个不错的东西,但是代码结构比较乱!接下来就是从源码中抽取出精华,充分理解而不是只知道memcached的思想,不可只知道大概怎么实现。2011-10-30 已经很熟悉memcached的代码,并且整理出线程那块的代码。 阅读全文

Linux IPC系列

2011-10-13 15:48 by Aga.J, 640 阅读, 0 推荐, 收藏, 编辑
摘要:Mark Down! When I am spare, I will review it.1 管道半双工,可以有关系或无关系的进程间使用,FIFO(特殊文件),使用时管道的读写规则如读写打开,读写过程,阻塞读写,有较多地方需要注意!2 信号 异步方式,可靠和不可靠,kill,raise(向自身发送信号),sigqueue(支持信号带参数,之前可以配置信号处理函数),alarm(只有SIGALRM信号),settimer(更加强大的定时器),abort(SIGABORT信号) 信号安装靠signal和sigaction(与sigqueue配合)3 消息队列消息队列与管道以及有名管道相比,具有更大 阅读全文

Linux synchronous系列

2011-09-29 15:42 by Aga.J, 374 阅读, 0 推荐, 收藏, 编辑
摘要:Mark Down! When I am spare, I will review it. 原子操作用在位操作或者某个简单计数器(整型)可以使用原子增减等操作。自旋锁在加锁时间短的情况下可以使用,免去了传统的睡眠唤醒带来的开销读写锁读者多写者少的环境下使用,但是写者可能被饿死信号量信号不会丢失,在读者写者的环境下使用得多条件变量最常用的线程间同步等待某个条件发生,然后通知所有人seqlock解决了读者多,写者少时写者饿死的情况互斥量互斥访问某个临界区,资源保护,只能由一个进程或线程持有,并只有由它自己释放记录上锁上锁粒度可以缩小到文本中的字节范围文件作为锁.. 阅读全文
上一页 1 2 3 4 5 6 ··· 17 下一页