2016年6月18日

Java垃圾回收基础

摘要: 阅读全文

posted @ 2016-06-18 11:14 音符、时间、走走停停 阅读(128) 评论(0) 推荐(0) 编辑

2016年5月22日

BGP学习笔记

摘要: 源自红茶三杯: BGP应用于大规模网络或运营商,用作在AS间传递路由信息 使用BGP的三大理由 1. 大量路由需要承载, IGP只能容纳千条,而BGP可以容纳上万(应该是IGP结合BGP使用?) 2. 支撑MPLS/VPN的应用,传递客户VPN路由信息 3. 策略能力强,可以很好的实现路由决策与数据 阅读全文

posted @ 2016-05-22 19:33 音符、时间、走走停停 阅读(1464) 评论(0) 推荐(0) 编辑

2016年2月20日

source insight用于C语言编程的工具脚本

摘要: 简单来说,source insight提供的功能功能还不够傻瓜,用起来还不够方便,所以写了此脚本,提高开发效率。 部分source insight提供的功能也包含了进来,主要是因为我不喜欢使用太多的快捷键。 将代码中wcjMain关联到alt+a快捷键,随后输入你想操作的指令:如cb代表在本行之前添 阅读全文

posted @ 2016-02-20 21:57 音符、时间、走走停停 阅读(1023) 评论(0) 推荐(0) 编辑

2015年12月5日

LevelDB源码剖析

摘要: LevelDB的公共部件并不复杂,但为了更好的理解其各个核心模块的实现,此处挑几个关键的部件先行备忘。Arena(内存领地)Arena类用于内存管理,其存在的价值在于:提高程序性能,减少Heap调用次数,由Arena统一分配后返回到应用层。分配后无需执行dealloc,当Arena对象释放时,统一释... 阅读全文

posted @ 2015-12-05 11:08 音符、时间、走走停停 阅读(2512) 评论(0) 推荐(1) 编辑

2015年9月21日

LevelDB源码之五Current文件\Manifest文件\版本信息

摘要: 版本信息有什么用?先来简要说明三个类的具体用途:Version:代表了某一时刻的数据库版本信息,版本信息的主要内容是当前各个Level的SSTable数据文件列表。VersionSet:维护了一份Version列表,包含当前Alive的所有Version信息,列表中第一个代表数据库的当前版本。Ver... 阅读全文

posted @ 2015-09-21 21:22 音符、时间、走走停停 阅读(1769) 评论(0) 推荐(1) 编辑

LevelDB源码之六缓存机制

摘要: 缓存机制一直是性能优化的重要方式,LevelDB在读取SSTable、Block中均采用了缓存。LevelDB的缓存机制可谓“白手起家”,由最下层的Hash类到最上层的TableCache都由作者编写完成。先来看下类图:LRUHandle代表缓存记录,HandleTable是专门用于存储LRUHan... 阅读全文

posted @ 2015-09-21 21:13 音符、时间、走走停停 阅读(1978) 评论(1) 推荐(0) 编辑

2015年9月17日

LevelDB源码之四LOG文件

摘要: “LOG文件在LevelDb中的主要作用是系统故障恢复时,能够保证不会丢失数据。因为在将记录写入内存的Memtable之前,会先写入Log文件,这样即使系统发生故障,Memtable中的数据没有来得及Dump到磁盘的SSTable文件,LevelDB也可以根据log文件恢复内存的Memtable数据... 阅读全文

posted @ 2015-09-17 21:55 音符、时间、走走停停 阅读(1172) 评论(0) 推荐(0) 编辑

2011年12月18日

封送带字符串指针的结构体参数到非托管函数

摘要: 在NET项目开发过程中,经常会遇到向非托管代码封送结构体的情况,如果结构体中仅包含blittable类型/字符串/字符数组类型字段,仅需要在C#中重新声明该结构体并将该结构体作为参数传递到非托管函数即可。但若结构体中包含了指向字符串的指针,情况会稍微复杂些。非托管结构体代码如下:struct ParamType{ wchar_t* JobBond; //字符串数组的个数 int Size; //字符串数组 wchar_t** NameList;};extern "C" __declspec(dllexport) void WINAPI Report(ParamType Pa 阅读全文

posted @ 2011-12-18 22:59 音符、时间、走走停停 阅读(2013) 评论(1) 推荐(1) 编辑

导航