Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1262849
  • 博文数量: 185
  • 博客积分: 495
  • 博客等级: 下士
  • 技术积分: 1418
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-02 15:12
个人简介

治肾虚不含糖,专注内核性能优化二十年。 https://github.com/KnightKu

文章分类

全部博文(185)

文章存档

2019年(1)

2018年(12)

2017年(5)

2016年(23)

2015年(1)

2014年(22)

2013年(82)

2012年(39)

发布时间:2013-05-13 14:37:21

前几天写的一个demo,没几行代码,但是涵盖的东西比较多:撰写模块,创建内核线程,节点及cpu亲缘性设置,内核态获取时间,内核态分配大内存,时间处理等等...已备后用。点击(此处)折叠或打开#include <linux/module.h>#include <linux/init.h>#include <linux.........【阅读全文】

阅读(1442) | 评论(0) | 转发(0)

发布时间:2013-05-07 13:54:59

编译libconhash的时候出现了一些类型问题的警告:conhash_util.c: In function ‘conhash_get_vnodes’:conhash_util.c:31:2: warning: passing argument 1 of ‘util_rbtree_mid_travel’ discards ‘const’ qualifier from pointer target type [enabled by default]util_rbtree.h:112:6: note: expected ‘struct u.........【阅读全文】

阅读(4268) | 评论(0) | 转发(0)

发布时间:2013-03-15 17:35:14

vsyscall相较于普通的通过INT 80中断完成的系统调用要更快,因此在对于精度要求很高或者时延要求极低的系统调用适合用vsyscall来实现,但是有一个缺点是vsyscall的系统调用不一定有libc的包裹函数,因此使用上比较复杂,但是内核已经为我们映射好了这些vsyscall到线程的地址空间中。废话少说,看代码:点击(此处.........【阅读全文】

阅读(4514) | 评论(0) | 转发(1)

发布时间:2013-01-05 22:22:36

先看一个经典的面试题:#include <stdio.h>#define f(a,b) a##b#define g(a) #a#define h(a) g(a) int main(){ printf("%s\n", h(f(1,2))); printf("%s\n", g(f(1,2))); return 0;}输出是:12f(1,2)原因就是宏替换的原则问题:当一个宏参数被放进宏体时,通常(注意,有例外)这个宏参数会首先被全部展开。当展开后的宏参数被放进宏体时,预处理器对新展开的宏体进行第二次扫描,并继续展开。例如:#define P......【阅读全文】

阅读(9304) | 评论(0) | 转发(3)

发布时间:2012-12-26 12:57:46

1.最长递增子串(codepad.org已验证) 2.最长不连续公共子串(codepad.org已验证) 3.字符串的编辑距离(codepad.org已验证) 4.上下两个等长数组,可互换同下标元素,求上下两数组和可能的最小差值(codepad.org已验证) 5.连续子数组的最大和(codepad.org已验证)   代码都为简单实现版,均为递归算法,用作练手和思路记录。   1.最长递增子串 点击(此处)折叠或打开 #define MAX 10000 #include <stdio.h> #include &l......【阅读全文】

阅读(1418) | 评论(0) | 转发(0)
给主人留下些什么吧!~~

登高望远海2013-09-16 22:09

你乃博客狂人。。。。。。。。。

回复  |  举报
留言热议
请登录后留言。

登录 注册