Chinaunix首页 | 论坛 | 博客
  • 博客访问: 590191
  • 博文数量: 83
  • 博客积分: 5453
  • 博客等级: 大校
  • 技术积分: 894
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-10 13:51
文章分类

全部博文(83)

文章存档

2015年(2)

2014年(1)

2013年(1)

2012年(3)

2011年(14)

2010年(7)

2009年(7)

2008年(12)

2007年(17)

2006年(19)

我的朋友

分类: LINUX

2007-05-22 21:04:37

       事件是由upstart开始的。upstart是一个sysvinit的替代程序, 由ubuntu项目发起, 旨在提供基于events的init服务. 前一阵, 小孙出于好奇, 将Debain的sysvinit替换为upstart程序族, 希望提高系统性能,开机速度确实快了2~3秒。不管怎样原始的init进程不能并发,upstart可以并发,这就是优点。经过一个月的使用测试, 小孙发现了一个问题, 简单的说多媒体程序的延迟,就是播放电影, mp3有明显的卡. 一开始还以为是I/O调度的问题, 后来又怀疑内核抢占, 再就是怀疑到upstart。而真实情况确都不是这些。

     发现这个问题还是一个偶然,  小孙玩着eclipse听着曲, 音乐一会儿卡一下, 非常的不爽, 无意中瞄了一眼conky,显示某段时间events/0占的cpu居然最多. 该进程属于内核的进程队列。 最后解决了这个问题,是在一个没有想到的地方:内核添加这些选项

     sound

           alsa

                  RTC Timer support

                 Use RTC as default sequencer timer
     
      小孙喜欢把内核的驱动全部编译进内核,因为即使这样内核大小也只有3M。一般来说,“编译进内核”与编译成模块的性能差别是:由函数调用变成了消息传递机制,性能下降。凡是三个月内没有用到的功能,统统踢出内核配置。这样有一些不熟悉的功能就可能被“冤枉”,后来遇到问题了,再添加功能。这种方法推荐给大家,从自己知识的基本出发编译内核。这样,遇到问题了,就是学习的好机会。:)

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