- 浏览: 55303 次
- 性别:
- 来自: 北京
最新评论
文章列表
Sqlite源码研究1
- 博客分类:
- 数据库
最近想深入的分析一下语言的编译的过程和数据库方面的东西,一个sql语句可以写的非常复杂,于是乎觉得有必要动手分析下SQLITE的源码。
1:初始化
2:sql解析
SQLITE_PRIVATE int sqlite3RunParser(Parse *pParse, const char *zSql, char **pzErrMsg)
sqlite3Parser 主要的解析函数
3:内存管理
4:文件管理
说起学习,自认为是个爱学习的人,也想做一个爱学习的人。小的时候就认为那种活到老学到老的人,很潇洒,很是让人羡慕。但是一直“成绩”不是很出色。总想静下心来分析分析原因,但是一直不曾有这个机会。今天看云风大哥的
顿悟
,便静下心来想想。
一直
觉得自己是个有独到见解的人,可是很多时候还是跟在别人的后面,重复别人的见解,很少做到独到。原因自然是自己独自分析,独自思考远远不够,总是在一种
觉自我良好的状态下学习者,可是没有成体系。在读书的时候总是有种急功近利的感觉,不是出于兴趣,追求进度和没有追求深刻。过了眼睛却没有深入内心,云风说的
“与我来说,学会的 ...
HTTP协议与TCP协议的关系
- 博客分类:
- 操作系统
1:http协议返回的限制,请求的限制。
2:byte字符编码的问题。
3:顺序关系
C#中有委托,actionscript中有 function类型等这些于C语言中的函数指针有什么关系呢,在汇编中又是怎么样对应的呢?今天我们来总结一下:
ActionScript:
java
C#
delegate void dosomething(string name);
class demo
{
public void test(string name)
{
System.Console.WriteLine(name);
}
}
class Pr ...
异步编程的探析(一)
- 博客分类:
- 编程语言
在IO设置中CPU对内存的操作都是主动的,CPU去读内存和写内存。对其他IO设备比如网卡、键盘、鼠标等,cpu去轮询每个设备的状态,那系统会运行的很慢,而且这些设备和cpu的交互不是很频繁。于是引入了中断机制。当这些设备有事件发生(比如键盘有按键按下,网卡有数据包到达等)时会引发一个中断,每个设备都有一个中断号。(主要设备的中断号是多少呢)。然后CPU转向预定的代码去执行。
七层协议,中Http和Tcp协议的关系:
Http协议传输长度的限制,Response和Request的限制
疑问:比如多个进程在监听键盘设计,比如QQ的失去焦点之后的快捷键,等,操 ...
在程序的运行过程中难免会出现异常,很多时候由于对异常的理解和应用不到位,导致程序不稳定,更可怕的是程序在错误的数据环境下长时间的运行。那么我们应该怎样对待异常,操作系统又是怎么样处理异常的呢?
我们平时编写程序,调用各个语言的网络编程接口(Socket等),一个数据的流向和行为是怎么样的呢?我们今天做一个探析。
我想了解的内容主要包括以下:
(1)我调用Socket接口后,数据的封装是怎么样的;
(2)到网卡的过程中缓冲区和IP协议是如何工作的;
(3)IP协议又是如何把数据包从一个网卡经过多个关卡(各个路由器、网线、网关等)到达另外一个网卡,如何到达对方的缓冲区。
(4)跟对方进程如何进行会话控制。
参考资料:深入理解计算机系统(第二版)
计算机网络编程
在做sql join 连接时需要注意的问题,如果2个表不是百分之百同时有记录的时候要用left或者rightjoin。如果连接出来要做不等于的排除运算时注意 null的判断,因为当两个表不是同时存在问题时,缺少数据的一个表连接出来的数据是null。
在linux中可以用fork创建进程,当我们双击应用程序,操作系统发生了什么呢?用一个加载器加载可执行文件,在win32平台,可执行文件的格式是固定的,所以加载器应该是操作系统自带的加载器。如果要执行别的平台的可执行文件,也不是没有可能,但是要实现一个加载器,去读取可执行文件。
加载器跟进程是什么关系呢??
如果实现自己的加载器?
还记得JVM的加载器吗?默认的加载器,自定义的加载器。
那Dotnet的加载器呢?Mono的加载器呢?
要创建一个控件,并且让这个控件加到parent container里面的时候,他的句柄才算创建,否则老是用线程等待是不会成功的。
现象:在启动一个线程线程任务是否及时办理的线程中,往控件写信息的时候老是出现错误。
在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。
错误发生在这句代码上:
gridControl1.BeginInvoke(dd, list);
后来采用让线程等待主界面加载完毕的时候执行,还是报同样的错误。这时候发现时句柄根本没有创建好。那么我何不在确定已经创建完UI的各个句柄后在启动线程呢?于是我移动了代码,让他 ...
struct student
{
char* name;
int age;
int collage;
};
static void WriteAndChangeStudent(struct student data)
{
fprintf(stdout,data.name);
data.age = 109;
printf("%d",data.age);
}
int main(int argc, char **argv)
{
struct student* one = new student();
memset(one ...
参考文章: http://www.iteye.com/topic/473874
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩
HOTSPOT源码体系结构分析
Openjdk和 Oracle Jdk的关系
static void Main(string[] args)
{
ClassA c1 = new ClassA();
ClassA c2 = new ClassA();
Console.WriteLine(ClassA.index);
Console.ReadKey();
}
class ClassA
{
public static int index = 0;
...
从汇编级别了解高级语言的执行过程,下面的汇编代码都是VS的反汇编代码,对比可以看出不同的执行方式在汇编上的差异,现在从最简单的开始。
1:先考察传值和传引用在汇编上的差异。
A:简单类型
int show(int m) //此处int show(int& m)
{
int n = m*5;
return n;
}
int _tmain(int argc, _TCHAR* argv[])
{
int n = 90;
int result = 0;
result = show(n);
result = result *4;
int ...
firefox
源码下载: ftp://ftp.mozilla.org/pub/mozilla.org
开发者: https://developer.mozilla.org/
Linux http://www.kerneltravel.net/kernel-book/%E6%B7%B1%E5%85%A5%E5%88%86%E6%9E%90Linux%E5%86%85%E6%A0%B8%E6%BA%90%E7%A0%81.html
Mono http://mono-project.com/Main_Page