自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(110)
  • 资源 (3)
  • 收藏
  • 关注

转载 Linux 汇编语言开发指南

Linux 汇编语言开发指南http://www.ibm.com/developerworks/cn/linux/l-assembly/尤其是  七、GCC 内联汇编 , 很实用!

2011-08-24 19:59:32 1268

原创 python 中的新玩意: 生成器

1、 什么是生成器生成器是执行一个带 yield 语句的函数所返回的对象def foo(): yield 1 yield 2 f = foo() 其中, type(foo) 是 function, 而 type(f) 是 generaotr生成器对象,实现了 __iter__() 和 next() ,因此,它是一个迭代器,可以用在 for 循环中2、 为什么需要生成器?生成器的特点,在于它可以记住运行状态以 foo() 函数为例,第一次调用的时候,返回 1,并记住已经执行到这里了; 第二次调

2010-11-18 20:20:00 360 1

原创 python 学习: 迭代器

1、 什么是迭代器迭代器就是提供  next() 方法的对象2、 如何使用迭代器for v in it:python 的 for 语句可对迭代器进行处理,它自动调用迭代器的 next() 方法进行遍历,并在遇到 StopIteration 异常后终止循环3、 有哪些迭代器?list, dict, 文件对象,都属于迭代器4、 为自己的类增加迭代器功能如果你的类满足迭代器的特性,那么只需要实现 __iter__() 和 next() 方法即可成为一个迭代器

2010-11-18 20:18:00 299

原创 python 内存泄露的诊断

对于一个用 python 实现的,长期运行的后台服务进程来说,如果内存持续增长,那么很可能是有了“内存泄露”一、内存泄露的原因对于 python 这种支持垃圾回收的语言来说,为什么会有内存泄露了?通常来说,有以下三种原因:1、 所用到的用 C 语言开发的底层模块中出现了内存泄露。2、 代码中用到了全局的 list 或者 dict,不停的往这些容器中插入对象,而忘记了在使用完之后进行删除回收3、 代码中有“引用循环”, python 垃圾处理机制无法进行回收二、 内存泄露的诊断思路内存泄露,一定是由于某些对象

2010-11-09 17:16:00 6792

原创 ELF 可执行程序在运行阶段寻找动态库的路径顺序

 Linux 上 ELF 格式的可执行程序,在程序启动阶段,会加载  ld.so 这个动态库(比较奇妙的是,它也可以直接被执行,动态库/可执行程序 二合一?),并通过它来加载其它需要的动态库。ld.so  manual page 中介绍了运行阶段寻找动态库的顺序 :         ld.so  loads  the shared libraries needed by a pro

2009-02-23 16:21:00 2094

原创 gcc 在编译阶段寻找动态库的路径顺序

摘自 ld manual page            The linker uses the following search paths to locate required shared libraries:           1.  Any directories specified by -rpath-link options.           2.  Any 

2009-02-23 16:18:00 3666

转载 GLIB 常用数据结构介绍 (3)

数组概念到目前为止我们已经介绍了两类有序集合:GSList 和 GList。它们非常相似,因为都依赖于指针来从一个元素链接到下一个条目,或者,在 GList 中,链接到前一个条目。不过,有另外一类不使用链接的有序集合;它的功能与 C 数组多少有些类似。它叫做 GArray,提供一个具备索引的单一类型的有序集合,能够为了容纳新条目而增加大小。相对于链表,数组有什么优势?一方面,索引访问。也就是说,如

2009-01-20 17:19:00 4048

转载 GLIB 常用数据结构介绍 (4)

队列概念队列是另一个便利的数据结构。一个 队列 会保存一列条目,而且访问形式通常是向最后添加条目,从最前删除条目。当需要按到达顺序进行处理时,这很有实用。标准队列的一个变种是“双端队列(double-ended queue)”,或者说是 dequeue,它支持在队列的两端进行添加或者删除。不过,在很多情况下最好避免使用队列。队列搜索不是特别快(是 O(n) 操作),所以,如果需要经常进行搜索,那么

2009-01-20 17:14:00 3184

转载 GLIB 常用数据结构介绍 (2)

 哈希表概念到目前为止,本教程只介绍了有序容器,在其中插入的条目会保持特定次序不变。哈希表 是另一类容器,也称为“映射”、“联合数组(associative array)” 或者“目录(dictionary)”。正如语文辞典使用一个定义来关联一个词,哈希表使用一个 键(key) 来唯一标识一个 值(value)。哈希表可以根据键非常快速地执行插入、查找和删除操作;实际上,如果使用得当,这些可以都是

2009-01-20 17:10:00 4988 1

转载 GLIB 常用数据结构介绍 (1)

int main(int argc, char** argv) { GSList* list = NULL; list = g_slist_append(list, "second"); list = g_slist_prepend(list, "first");g_printf("The list is now %d items long/n", g_slist_length(list)); l

2009-01-20 17:08:00 6178

原创 使用 libevent 容易犯的一个错误

使用 libevent 的一个代码片段如下:struct event ev_accept;event_set(&ev_accept, listen_fd, EV_READ|EV_PERSIST, on_accept, NULL);event_add(&ev_accept, NULL);这段代码是错误的,因为 ev_accept 是在栈上分配的临时变量,但是 ev_accep

2008-10-10 17:36:00 3343 2

原创 对 C++ 引用的理解

 仅仅是记录一下心得; 接触 C++ 是很久以前的事情,但此后一直很少使用,因此对 C++ 的很多语言特性理解很肤浅; 例如,一直就有点迷惑,“为什么有了指针,C++ 还要引入引用” ? 网上搜索一下,一般的答案是 “引用是将引用者作为被引用者的一个别名”; 我试着从编译器的角度来理解这个“别名”的意思; 一个符号,是一个对象的“正式名称”;例如 

2008-07-26 17:23:00 1476

原创 Linux 下查看 IPC 使用情况的方法

1. SYS-V 方法可以通过 ipcs 命令来查看 SYS-V 相关的 IPC 使用情况 2. POSIX 方法 1). message queueLinux 提供了 mqueue 的文件系统类型,可以通过它来观察到 POSIX 消息队列的使用情况 $ mkdir /dev/mqueue $ mount -t mqueue none /dev/mqueue $

2008-06-18 20:24:00 1981

原创 用 inotify 监视文件系统的变化

可以用 Linux 2.6 kenel 提供的 inotify 机制来监控文件系统的变化,例如增加文件,删除文件,修改文件等 下面是一个例子程序,可用来监控一个目录,如果在此目录下进行创建文件、删除文件、修改文件的操作,会有提示信息打印到屏幕上 #include sys/inotify.h>#include stdio.h>#include errno.h>#include sys

2008-05-12 20:21:00 3030

转载 [高性能技术] 使用异步 I/O 大大提高应用程序的性能

使用异步 I/O 大大提高应用程序的性能转自: http://www.ibm.com/developerworks/cn/linux/l-async/Linux® 中最常用的输入/输出(I/O)模型是同步 I/O。在这个模型中,当请求发出之后,应用程序就会阻塞,直到请求满足为止。这是很好的一种解决方案,因为调用应用程序在等待 I/O 请求完成时不需要使用任何中央处理单元(CPU)。但是

2008-05-09 18:55:00 1459

原创 关于“惊群”的讨论

“惊群”问题可以在 > 中看到,下面这个帖子对这个问题做了一些讨论,有时间需要看一下内核代码来更深入的了解一下http://www.chinaunix.net/jh/23/946261.html

2008-05-09 18:53:00 1477

原创 “堆碎片”以及解决方法

 最近用 C 开发一个服务器软件,代码需要频繁的分配内存,并且用到的第三方库 GLIB 和 libCurl 也有不同的内存分配方式。在开发过程中,发现一个问题,就是在压力测试下,程序耗用内存一直增长,直到用完 3G 的虚存空间,从而 malloc 失败;而我的代码中,内存使用完后都是及时释放的,不应该出现这种现象。因此首先怀疑是有内存泄露,但是无论用 valgrind,还是 dmall

2008-05-08 17:22:00 2783

转载 ld 中文使用手册完全版(译)

[Linux命令] ld 中文使用手册完全版(译) 使用ld ******** 本文档介绍GNU连接器ld的2.14版本. 本文档在GNU自由文档许可证下发行.在"GNU自由文档许可证"一章中有关于本许可证的一份拷贝. 概述 ******** ld把一定量的目标文件跟档案文件连接起来,并重定位它们的数据,连接符号引用.一般,在编译一个程序 时,最后一步就是运行ld. ld能接受

2008-01-28 21:01:00 3837

转载 linux系统locale的设定

locale 是国际化与本土化过程中的一个非常重要的概念,个人认为,对于中文用户来说,通常会涉及到的国际化或者本土化,大致包含三个方面:看中文,写中文,与 window中文系统的兼容和通信。从实际经验上看来,locale的设定与看中文关系不大,但是与写中文,及window分区的挂载方式有很密切的关系。本人认为就像一个纯英文的Windows能够浏览中文,日文或者意大利文网页一样,你不需要设定loca

2008-01-04 11:12:00 7603

转载 [高性能技术] 高效异步IO的设计开发

高效异步IO的设计开发转自: http://hippoweilin.mobile.spaces.live.com/arc.aspx      高效异步IO,按我理解起来应该不光要达到程序运行时的高效,当然也要达到开发效率的高效,其中还包括很重要一点就是质量,对于很多从未做过异步IO的人来说,初次尝试异步IO肯定会碰到不少困难,因为不光是对编程能力的考验,也需要开发者对操作系统的IO操作有相

2007-11-27 11:45:00 2501

转载 [高性能技术] 用ab 测 Apache 压力

用ab测apache压力转自: http://www.cublog.cn/u/20996/showart.php?id=212035以前安装好APACHE总是不知道该如何测试APACHE的性能,现在总算找到一个测试工具了。就是APACHE自带的测试工具AB(apache benchmark).在APACHE的bin目录下。格式: ./ab [options] [http:/

2007-11-27 11:29:00 1755

转载 未来手机操作系统的格局分析

未来手机操作系统的格局分析转自: 由于移动操作系统的重要性被越来越多的人所关注,然而目前的市场统计资料又似是而非,所以 只能从基本面上进行分析。基本的事实就是智能电话的份额逐年增加,其中主流的操作系统依次是:Symbian, Microsoft Windows Mobile, Linux, RIM, Palm OS。排除了未来5年之内出现颠覆性的操作系统的前提下,我们就这几个操作系

2007-11-14 19:23:00 1045 1

转载 拨云见日 关注七项Linux内核发展方向

拨云见日 关注七项Linux内核发展方向转自: http://news.csdn.net/n/20071101/110151.html对于一个Linux的企业用户来说,它的内核开发可能显得过于复杂了,有许多人在维护不同的代码,而且有更多志愿者在提交代码,这种乱花渐欲迷人眼式的“热闹”景象却让我们很难看清未来将有什么样的新功能。   就其本身而言,Linux的发展没有路线图。为了对Lin

2007-11-01 14:25:00 1069

转载 [高性能技术] The C10K problem

The C10K problemIts time for web servers to handle ten thousand clients simultaneously, dont you think? After all, the web is a big place now. And computers are big, too. You can buy a 1000MHz m

2007-10-30 21:49:00 2278

转载 [高性能技术] Linux2.6内核epoll介绍(0.1版本)

[高性能技术] Linux2.6内核epoll介绍(0.1版本)转自: http://mechgouki.blogdriver.com/mechgouki/601157.html[作者]:滕昱,2005/3/30,0.1版本[版权声明]:此文档遵循GNU自由文档许可证(GNU Free Documentation License).任何人可以自由复制,分发,修改,不过如果方便,请注明出

2007-10-30 21:31:00 2359

原创 Linux 自带的 watchdog 的简介

Linux 自带了一个 watchdog 的实现,用于监视系统的运行,包括一个内核 watchdog module 和一个用户空间的 watchdog 程序内核 watchdog 模块:内核 watchdog 模块通过 /dev/watchdog 这个字符设备与用户空间通信。用户空间程序一旦打开 /dev/watchdog 设备,就会导致在内核中启动一个 1分钟的定时器,此后,用户空间程序

2007-10-29 10:10:00 12505 1

转载 在Linux下构造高性能、高可用、高可伸缩性的服务集群

 在Linux下构造高性能、高可用、高可伸缩性的服务集群转自: http://www.ibm.com/developerworks/cn/linux/cluster/l-lvsinst/index2.html随着Internet技术的迅猛发展,网络技术、性能的不断提高,高可伸缩性、高可用性、可管理性、价格有效性的网络服务技术将成为网络服务技术的主导。各种平台下的技术方案应运而生。本文试

2007-10-26 19:33:00 2335

原创 【流浪者的 C++ 专栏】(1):对C++ 中的Deque的一点探究

C++类模板提供了许多容器共开发者使用,其中deque就是其中一中容器。大家可以猜猜下列容器使用的最终输出是否如同你的本意。#include #include  using namespace std;const int max_v = 10; deque d; void print(){   deque::iterator current;   for( current=d.begin(); c

2007-10-20 19:43:00 1214

原创 版权申明

版权申明本博客注明为原创的文章均出自小马哥本人,如需转载、引用其中的部分文字,请注意以下几点: 1)请在转载(引用)的内容开始添加小马哥署名,并提供本博客中相应文章的链接。如你的作品为非电子读物或纯文本,请给出链接的url。 2)请勿用于商业用途。 3)如果愿意,请给我邮件:[email protected]

2007-10-18 14:51:00 1322

原创 Linux 2.4.30 内核文件系统学习(多图) 1 : 关键数据结构

Linux  2.4.30 内核文件系统学习(多图) 1:  关键数据结构版权申明1.   概述 根据以前学习内核源码的经验,在学习文件系统实现之前,我大概定了个目标:1、  建立一个清晰的全局概念。为将来需要研究代码细节打下坚实基础。2、  只研究虚拟文件系统 VFS 的实现,不研究具体文件系统。为什么选择 Linux 2.4.30?因为可以参考《Li

2007-10-14 23:46:00 7622 1

原创 如何写好技术文章?

要把复杂的技术讲清楚,对于我这种文字表达能力、逻辑思维能力一般的人来说,常常觉得很难。根据《金字塔原理》以及王爽先生在《汇编语言》这本书中尝试的方法,我认为可以运用以下几种方法来写作技术文章。1、  确定一个主题。一篇好的技术文章可以没有华丽的文采,但最起码要把目的表达清楚。2、  通过几条线索来串联知识点3、  知识屏蔽:在讲解一条线索上的知识点的时候,暂时屏蔽其它知识4、 

2007-10-12 19:54:00 821

转载 Linux内核的时钟中断机制 (8)

转自: http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart7.8 时间系统调用的实现 本节讲述与时间相关的syscall,这些系统调用主要用来供用户进程向内核检索当前时间与日期,因此他们是内核的时间服务接口。主要的时间

2007-09-28 15:55:00 2269

转载 Linux内核的时钟中断机制 (7)

转自 http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart7.7 进程间隔定时器itimer 所谓“间隔定时器(Interval Timer,简称itimer)就是指定时器采用“间隔”值(interval)来作为计时方式

2007-09-28 15:54:00 1062

转载 Linux内核的时钟中断机制 (6)

转自 http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart7.6 内核定时器机制 Linux内核2.4版中去掉了老版本内核中的静态定时器机制,而只留下动态定时器。相应地在timer_bh()函数中也不再通过 run_ol

2007-09-28 15:45:00 1024

转载 Linux内核的时钟中断机制 (5)

转自 http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart7.5 时钟中断的Bottom Half 与时钟中断相关的Bottom Half向两主要有两个:TIMER_BH和TQUEUE_BH。与TIMER_BH相对应的B

2007-09-28 15:42:00 1085

原创 Linux内核的时钟中断机制 (4)

转自 http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart7.4 时钟中断的驱动 如前所述,8253/8254 PIT的通道0通常被用来在IRQ0上产生周期性的时钟中断。对时钟中断的驱动是绝大数操作系统内核实现time-

2007-09-28 15:36:00 1834

转载 Linux内核的时钟中断机制 (3)

转自 http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart7.3 Linux对时间的表示 通常,操作系统可以使用三种方法来表示系统的当前时间与日期:①最简单的一种方法就是直接用一个64位的计数器来对时钟滴答进行计数。②第

2007-09-28 15:34:00 1921

转载 Linux内核的时钟中断机制(2)

转自 http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart7.2 Linux内核对RTC的编程 MC146818 RTC芯片(或其他兼容芯片,如DS12887)可以在IRQ8上产生周期性的中断,中断的频率在2HZ~819

2007-09-28 15:33:00 1050

转载 Linux内核的时钟中断机制(1)

转自  http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart第七章 Linux内核的时钟中断 (By 詹荣开,NUDT) Copyright © 2003 by 詹荣开 E-mail:zhanrk@sohu

2007-09-28 15:26:00 1405

原创 睡眠与唤醒(草稿)

睡眠与唤醒 (草稿)1.    调用 nanosleep() 以后发生了什么?nonosleep() 是一个系统调用,在内核中对应的是 sys_nonosleep()sys_nonosleep:    创建一个定时器struct hrtimer_sleeper {    struct hrtimer timer;    struct task_struct *task;};void hrtimer

2007-09-27 20:32:00 1175

Mnesia用户手册

Mnesia用户手册 Mnesia用户手册 Mnesia用户手册 Mnesia用户手册

2011-11-02

Linux Socket Programming By Example

Linux Socket Programming By Example

2009-09-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除