E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
mmdetection源码笔记
redis
源码笔记
- aof
aof是redis提供的一种数据持久化机制,通过将每一条命令dump下来,保持数据和内存中的数据一致。 1 #include "redis.h" 2 #include "bio.h" 3 4 #include <signal.h> 5 #include <fcntl.h> 6 #include
·
2015-11-13 23:10
redis
redis
源码笔记
- redis对过期值的处理(in redis.c)
redis允许对key设置超时时间,实现过期key的自动淘汰。这篇blog分析下,其自适应(adaptive)的淘汰机制。 redis每隔100ms定时执行的循环(serverCron function)里有如下语句: 655 /* Expire a few keys per cycle, only if this is a master. 656 * On slav
·
2015-11-13 23:10
redis
redis
源码笔记
- slowlog
slowlog是redis提供的进行query分析的工具。它将执行时间长的命令统一以list形式保存在内存之中,使用者可以通过slowlog命令查看这些慢query,从而分析系统瓶颈。 最好的分析笔记是作者的注释,除此之外,会做简要记录。 slowlog.h 1 /* This structure defines an entry inside the slow log list */
·
2015-11-13 23:09
redis
redis
源码笔记
- redis-cli.c
这份代码是redis的client接口,其和server端的交互使用了deps目录下的hiredis c库,同时,在这部分代码中,应用了linenoise库完成类似history命令查询、自动补全等终端控制功能。 1 #include "fmacros.h" //用于mac下的兼容性处理 2 #include "version.h"
·
2015-11-13 23:08
redis-cli
redis
源码笔记
-ae.c
ae.c是redis事件框架的具体实现,这篇blog对这份源码进行简单说明。其中谈到了作者已经标记的一些未来可能做的改进。 ae.c 1 #include <stdio.h> 2 #include <sys/time.h> 3 #include <sys/types.h> 4 #include <unistd.h>
·
2015-11-13 23:07
redis
redis
源码笔记
- bio
作者在bio.c的头注释中对设计进行了详细的介绍/* Background I/O service for Redis. 这个文件是redis后台IO服务的实现 * * This file implements operations that we need to perform in the background. * Currently there is only a sing
·
2015-11-13 23:07
redis
redis
源码笔记
-ae.h
ae框架是redis作者开发的事件处理框架,其目的和libevent项目类似。redis本着最小依赖原则,自己实现了一套,而且速度更快。ae只有不到500行代码,但据说libevent有3万加的代码,实现这一个功能所付出的代码量已经超过了redis所有的代码量。 ae.h 1 #ifndef __AE_H__ 2 #define __AE_H__ 3 //同时支持的连接数,其
·
2015-11-13 23:06
redis
redis
源码笔记
-config
redis配置文件的头文件,有一些和平台有关的配置,在这里边进行设置。 config.h 1 #ifndef __CONFIG_H 2 #define __CONFIG_H 3 4 #ifdef __APPLE__ 5 #include <AvailabilityMacros.h> 6 #endif 7 8 /* Define redis_fst
·
2015-11-13 23:05
config
redis
源码笔记
-endian
对于目标机是大端字节序的机器,进行字节码的转换,提供了16byte、32byte、64byte字节的转换。在intset\ziplist\zipmap三种数据结构中使用,使得不同字节序机器生成的rdb文件格式都是统一的(小端字节序),便于兼容。 代码实在是太简单了,贴上来,不多说了。 endian.h 1 #ifndef __ENDIAN_H 2 #define __ENDIAN_H
·
2015-11-13 23:04
redis
redis
源码笔记
-anet
anet库是redis对tcp网络层以及unix域实现的一个封装。redis的客户端和server端通信使用的均为TCP协议。Basic TCP socket stuff made a bit less boring anet.h 1 #ifndef ANET_H 2 #define ANET_H 3 4 #define ANET_OK 0 5 #define ANET_
·
2015-11-13 23:04
redis
redis
源码笔记
-dict.c
这篇blog介绍dict的实现。 dict.c 1 #include "fmacros.h" 2 3 #include <stdio.h> 4 #include <stdlib.h> 5 #include <string.h> 6 #include <stdarg.h> 7 #inc
·
2015-11-13 23:03
redis
redis
源码笔记
-dict.h
这篇介绍redis最后一个基础数据结构——hash表。可以毫不夸张的说,hash表是redis一切存储的基础,也是redis得以快如飞的基础。 注:其实还有个intset,不过intset是在持久化dump到硬盘时为节省空间设计的,和我们这里谈的不一样。 dict的设计呢,简单的说是一个双表,“一主一从”,不定时rehash,建议大家在读代码前能够对这个设计有所了解。Anyway,随便搜一搜,
·
2015-11-13 23:02
redis
redis
源码笔记
-testhelp
testhelp.h是作者为redis量身定做的单元测试框架,对于redis这种规模的项目,就没有必要上GTEST这种大杀器了,作者18行代码搞定。 不过很遗憾,在2.4.10这个版本的版本的redis中,只有sds用了这个测试框架,不知其他代码作者是如何做测试的。我慢慢摸索,摸索到了告诉大家。 1 #ifndef __TESTHELP_H 2 #define __TESTHELP_H
·
2015-11-13 23:02
redis
redis
源码笔记
-sds
sds和adlist一样,是redis的基础数据结构之一,是其为自身实现的字符串类型。A C dynamic strings library sds.h 1 #ifndef __SDS_H 2 #define __SDS_H 3 4 #define SDS_MAX_PREALLOC (1024*1024) //字符串最大的预分配长度是1M 5 6 #in
·
2015-11-13 23:01
redis
redis
源码笔记
-adlist
adlist是redis自己是实现的一个通用的双向链表。 ------------------------------------------------adlist.h--------------------------------------------------- #ifndef __ADLIST_H__ #define __ADLIST_H__ /* Node, List,
·
2015-11-13 23:00
redis
redis
源码笔记
-redis.conf
redis.conf是redis-server的配置文件 # Redis configuration file example # Note on units: when memory size is needed, it is possible to specifiy# it in the usual form of 1k 5GB 4M and so forth:## 1k
·
2015-11-13 23:59
redis.conf
redis
源码笔记
- 刘浩de技术博客 - 博客园
redis
源码笔记
- 刘浩de技术博客 - 博客园 redis
源码笔记
记录发现的一个hiredis的bug 摘要: hiredis是redis官方提供的c客户端库。
·
2015-11-13 22:30
redis
【
源码笔记
】BlogEngine.Net 中的权限管理
BlogEngine.Net 是个功能点很全面的开源博客系统,容易安装和实现定制,开放接口支持TrackBack,可以定义主题配置数据源等等。可谓五脏俱全,这里先记录一下它基于Membership的权限管理(一般只说到角色就没了)。 Membership是.net2.0的时候就出来了,现在的
·
2015-11-13 12:35
Engine
redis
源码笔记
-ae_epoll.c
这部分代码是具体事件触发网络库的底层实现。Linux下有epoll设施,而且其效率是现在最高的。注意即使高效如redis,其也只是选择了自动档-水平触发(自动档和手动档的典故请自行google)。据说libevent也是使用的水平触发。废话不多说,看代码吧。 1 #include <sys/epoll.h> 2 3 typedef struct aeApiState {
·
2015-11-12 20:32
redis
jQuery
源码笔记
——延迟对象
提供一种方法来执行一个或多个对象的回调函数, Deferred对象通常表示异步事件。 它是回调对象的拓展运用,在jQuery当中非常依赖回调对象。 一个简单的,只解决成功状态下的缓存实例 function myDeferred(){ var arr = []; return { done: function(a){ a
·
2015-11-12 10:32
jquery
jQuery
源码笔记
——回调对象
回调对象是一个多用途的回调列表对象,提供了强大的的方式来管理回调函数列表。 最简单的缓存对象 function Callbacks(){ var list = [], self = { add: function(fn){ list.push(fn); }, remove: function(f
·
2015-11-12 10:32
jquery
jQuery
源码笔记
——数据缓存
数据缓存是为了解决内存泄露,他的原理是,当我们将数据存储到一个对象上面,实际上是将所有的数据存到一个单独的数据对象里,而这个对象只提供一个接口,这个接口可以访问自己存在数据对象里自己的数据。 这是一个简单的数据缓存 var cache= {}; function set(obj,name,value){ //在对象上存储一个属性,用作访问数据的接口 obj.expando
·
2015-11-12 10:31
jquery
jQuery
源码笔记
——四
each()实现 var jQuery = function( selector, context ) { return new jQuery.fn.init( selector, context ); }; jQuery.fn = jQuery.prototype = { selector: "", init: function(
·
2015-11-12 10:30
jquery
jQuery
源码笔记
——三
将类数组对象转化为数组对象 javascript中有许多类数组对象,比如HTMLCollection,NodeList,arguments。她们的特点是和数组一样有length属性,并且有0,1,2这样的位置属性。在代码编写中我们经常需要将他们转化为数组对象。 //mini类数组对象 var arrayLike = { 0: "a", 1: &quo
·
2015-11-12 10:29
jquery
jQuery
源码笔记
——二
jQuery选择这样返回对象 var jQuery = function( selector, context ) { return new jQuery.fn.init( selector, context );//从jQuery.fn里调用的方法 }; jQuery.fn = jQuery.prototype = { //这里jQuery.prototype,目前在这
·
2015-11-12 10:29
jquery
jQuery
源码笔记
——准备
将变量局部化 作为一个库首要解决的问题就是防止影响全局的变量。自执行匿名函数可以很好的实现这一点。 传入window,undefiend是将全局变量改为局部变量,根据作用域链访问原理,访问更快一些,。undefined不传值实际就是传入undefined; (function(window, undefined) { var jQuery = function() {}
·
2015-11-12 10:27
jquery
underscore
源码笔记
问题 1、().call(this)什么意思 2、_.noConflict()怎么用? 3、obj通过wrapper变为_,wrapper对象的原型中有underscore的所有方法,_比obj多了这些方法,这种继承属于构造函数的继承还是原型链的继承? 4、nodejs中module有什么用?为什么还要判断它?把underscore的命名变量放在每个模块中的exports,为什么不同exp
·
2015-11-11 16:10
underscore
backbone.Model
源码笔记
backbone.Model backbone的model(模型),用来存储数据,交互数据,数据验证,在view里面可以直接监听model来达到model一改变,就通知视图. 这个里面的代码是从backbone里面剥离出来,然后一点一点研究和调试出来的,可以单独运行,依赖underscore,jquery或者是zepto event.js是剥离出来的Backbone
·
2015-11-08 15:09
backbone
backbone.Collection
源码笔记
Backbone.Collection backbone的Collection(集合),用来存储多个model,并且可以多这些model进行数组一样的操作,比如添加,修改,删除,排序,插入,根据索引取值,等等,数组有的方法,他基本上都有 源码注释 <!DOCTYPE html> <html> <head>
·
2015-11-08 15:09
Collection
Backbone Events
源码笔记
用了backbone一段时间了,做一些笔记和总结,看的源码是1.12 backbone有events,model,collection,histoty,router,view这些模块,其中events是最基础的,其他的模块的prototype全部都扩展了他,所以events是非常重要的,真的很重要,还好代码比较简单,也比较好理解 这个里面的代码是从backbone里面剥离出来,
·
2015-11-08 15:08
backbone
backbone.Router History
源码笔记
Backbone.History和Backbone.Router history和router都是控制路由的,做一个单页应用,要控制前进后退,就可以用到他们了。 History类用于监听URL的变化,和触发Action方法,他可以添加对url的监听, Router类用于定义和解析路由规则,并将URL映射到Action。 router和history一些个人的注解
·
2015-11-07 14:40
backbone
阅读underscore
源码笔记
本文为原创作品,可以转载,但请添加本文连接,谢谢传阅,本人博客已转移至github,地址为:jruif.github.io underscorejs,一个实用的的Javascript函数库,值得推荐,官网地址,Github仓库,有注释的源码 obj.length === +obj.length 判断obj.length是不是一个数字,“+”会吧非number类型的值尝试转换为n
·
2015-11-01 15:20
underscore
django
源码笔记
-【2】
add by zhj: 在原文的基础上有修改 原文:http://www.cnblogs.com/gaott/archive/2012/02/28/2371238.html 上一期完理解了WSGI处理思路,现在看看django是如何实现这个接口的。 django.core.handlers 在此模块中着重看两个文件:base.py, wsgi.py 首先从宏观上看主要涉及到的类: 而
·
2015-11-01 15:00
django
django
源码笔记
-【1】
add by zhj:第二段代码有修改 原文:http://www.cnblogs.com/gaott/archive/2012/02/28/2371181.html 前言 Django是一个开放源代码的Web应用框架,她像一个工具箱,包括了整个web开发中的各种技术,例如ORM,Template等。这是在阅读django的源码中作的笔记。 首先需要简要介绍以下WSGI。 WSGI 基本概
·
2015-11-01 15:59
django
网站压力测试工具-Webbench
源码笔记
Ubuntu 下安装使用 1、安装依赖包CTAGS sudo apt-get install ctage 2、下载及安装 Webbench http://home.tiscali.cz/~cz210552/webbench.html 解压: tar -zxvf webbench-1.5.tar.gz 切换到解压后的目录: cd webbench-1.5 编译
·
2015-10-30 10:34
webbench
LinearLayout
源码笔记
onMeasure()会调用measureVertical(int widthMeasureSpec, int heightMeasureSpec) mTotalLength保存已经measure过的child所占用的高度 void measureChildBeforeLayout(View child, int childIndex
·
2015-10-21 11:21
LinearLayout
ubuntu 编译android
源码笔记
已经验证,可以编译成功。过程中会碰到一些编译错误,安装好依赖环境,可以解决。 1、splite压缩包的合并,解压缩,md5验证http://pan.baidu.com/s/1bnG1NtX kitkat安装包的下载参考http://bbs.eoe.cn/thread-543546-1-1.html 2、下载安装sdk kitkat需要1.6的java环境,最好食orcale的 3、下载安装其他依
lipeil
·
2015-09-26 15:00
URLClassLoader
源码笔记
在搜索加载Jar文件时,满屏都是URLClassLoader,简直是被玩坏了。作为不求甚解的人,都觉得太过不去了,看看源码吧。Classloader基础关于resourceURLClassLoader的最终基类是ClassLoader。支持并发的ClassLoader需要在初始化时,调用registerAsParallelCapable()注册自己对于由ClassLoaderA读入的class中使
pouloghost
·
2015-09-07 16:00
源码
源码笔记
---MBProgressHUD
前言作为初学者,想要快速提高自己的水平,阅读一些优秀的第三方源代码是一个非常好的途径.通过看别人的代码,可以学习不一样的编程思路,了解一些没有接触过的类和方法.MBProgressHUD是一个非常受欢迎的第三方库,其用法简单,代码朴实易懂,涉及的知识点广而不深奥,是非常适合初学者阅读的一份源码.一.模式首先,MBProgressHUD有以下几种视图模式.typedefenum{/**默认模式,使用
__微凉
·
2015-08-18 12:39
阅读underscore
源码笔记
nderscorejs,一个实用的的Javascript函数库,值得推荐,官网地址,Github仓库,有注释的源码obj.length===+obj.length 判断obj.length是不是一个数字,“+”会吧非number类型的值尝试转换为number类型,如果失败返回NAN。void0 这个相信大家经常见,但是你明白它是做什么的吗?而且我们遇到的情况大多都是在超链接里写着Javascrip
liufeng520
·
2015-07-08 10:00
Android Binder机制
源码笔记
(1)
Binder在java层的实现其实是对native层的封装(Binder.java中一堆的native方法),因此主要分析的应该是native层.android_util_Binder.cpp:对于java层的native方法在这里进行了register,已和c/c++层对应起来:构造一个JNINativeMethod数组,里面存储了Binder的java方法和cpp方法的映射:/*name,si
fyfcauc
·
2015-06-03 14:00
android
Binder
Android Adapter机制
源码笔记
(7): AbsListView(3)
AbsListView的setAdapter函数其实没有替换和保存新的Adapter,也没有触发UI重绘等,只是简单的将mCheckStates/mCheckedIdStates清空,是重点子类override函数,AbslListView中关于Item**check和select的处理逻辑还是很多的,但是这一块逻辑反而平时开发基本不会涉及(很少有需求对这些功能进行高度定制的)**setOnScr
fyfcauc
·
2015-05-20 12:00
android
Android Adapter机制
源码笔记
(6): AbsListView(2)
AbsListView中的回收器:RecycleBin:RecycleBin实现了在一次一次的layout的过程中对于View的回收重用机制,有两层的的viewstorage:ActiveViews层和ScrapViews层.其中,ActionView层指的是layout开始时就展现在screen上的那些view,在layout完成以后,所有在ActionViews层的view都会降级为Scrap
fyfcauc
·
2015-05-19 10:00
Android Adapter机制
源码笔记
(5): AbsListView(1)
abstractclassAbsListViewextendsAdapterViewimplements……..:注意,AbsListView里的”List”指的是这个View的dataset形式是list(有点不准确),而非这个View真的是一个ListView的形式,其呈现形式也是完全自定的(layoutChildren()由子类来确定自己的layout方式)里说的很清楚了.Baseclass
fyfcauc
·
2015-05-19 10:00
Android Adapter机制
源码笔记
(4): AdapterView
abstractclassAdapterViewextendsViewGroup:注释已经将其定位解释的很好了:AnAdapterViewisaviewwhosechildrenaredeterminedbyanlinkAdapter.AdapterView的家族还是挺庞大的,除了Android自带的ListView/GridView/Spinner/…..这些,很多著名的自定义控件也是基于Ada
fyfcauc
·
2015-05-19 10:00
ActivityThread
源码笔记
(1)
ActivityThread:虽然名字是Thread,但是本身并不继承自任何一个Thread类,其Thread的功能是通过内部维护的handler(mH)实现的.ActivityThread的staticmain函数(入口):前面是一系列的初始化:重要的初始化:Looper.prepareMainLooper(),为当前线程配置一个Looper并放在Looper类的相应的ThreadLocal中.
fyfcauc
·
2015-05-17 21:15
Android
Android
Activity
Android
Basement
Android
Window
ActivityThread
源码笔记
(1)
ActivityThread:虽然名字是Thread,但是本身并不继承自任何一个Thread类,其Thread的功能是通过内部维护的handler(mH)实现的.ActivityThread的staticmain函数(入口):前面是一系列的初始化:重要的初始化:Looper.prepareMainLooper(),为当前线程配置一个Looper并放在Looper类的相应的ThreadLocal中.
fyfcauc
·
2015-05-17 21:00
android
Activity
Android Adapter
源码笔记
(3)
SimpleAdapterextendsBaseAdapterimplementsFilterable本质上和ArrayAdapter一样,只不过Data的数据结构更为复杂,支持的Viewlayout也更为复杂.为了支持携带多childView的数据,mData在这里的数据结构变为了List>,每份Item都有一个Map对应,里面存储了多元化的值(其实主要是为了多样化的View准备的).但是mDa
fyfcauc
·
2015-05-11 19:00
android
Android Adapter
源码笔记
(2)
ArrayAdapter,很直白的懒人适用型Adapter,不过要求对应的Data可以以数组的形式表示.也算是个半教学演示,在构造的时候就会要求一个layout的resoourceid,该layout表示的就是ListView中每个View的布局,并且考虑到常规的应用场景都会每个View显示出Data的内容,还可以选择性的给一个layout中的TextView的resId,这样ArrayAdapt
fyfcauc
·
2015-05-11 11:00
android
Android Adapter
源码笔记
(1)
Adapter,Android中最常见和明显的设计模式运用,Android中的Adapter主要指的是负责适配AdapterView和Data之间的adapter,可以认为是MVC中的V.Android的Adapter家族还是挺庞大的,base接口就是AdapterInterface,还和之前一样,一个Interface的源码阅读的价值主要在于基本接口使用guide/抽象设计理念/注释中的要点.A
fyfcauc
·
2015-05-10 20:00
android
上一页
36
37
38
39
40
41
42
43
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他