Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3146541
  • 博文数量: 117
  • 博客积分: 10003
  • 博客等级: 上将
  • 技术积分: 5405
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-23 09:34
文章分类

全部博文(117)

文章存档

2011年(1)

2010年(10)

2009年(69)

2008年(37)

分类: LINUX

2008-03-19 17:50:01

在嵌入式系统中,对响应速度要求很高,在我们设计一个进程时,如果其响应时间达不到要求,我们往往会把它设计成damon进程。
 
这样,虽然时间是满足了,但也带来很多问题。
1、Damon进程的数量,会占用大量的内存。
2、由于Damon进程的生存周期很长,内存泄漏的问题将会十分严重。
 
能不能有其他方法解决呢?
首先我们要先看看是什么占据了大部分的进程启动时间。
向我们的进程依赖的库越来越多,经常多达50~100,其load 库的时间将在几百毫秒级,这往往是制约进程响应时间的大头。我们怎么来节省这部分时间。
 
1、在进程的代码的开头,main函数中,加入pause()。然后运行它,这样这个进程只是加载了动态库,而停在了那里。
2、如果我们需要这个进程服务时,只需要向它发送一个信号,这个进程将继续运行。
3、当我们不再需要这个进程时,我们可以直接退出进程,释放进程所占用的所有内存。
4、然后在马上启动该进程,它将会加载动态库,然后停在那里。
 
这样我们就可以把进程加载动态库的时间节省出来。
阅读(2214) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-03-24 12:40:04

给我发邮件吧,很久不上MSN了。 loughsky@sina.com

chinaunix网友2008-03-22 20:59:51

写的很好,请你有MSN 么?

chinaunix网友2008-03-20 11:46:23

如果在你退出或者加载进程的过程中,发出信号了,你没接受到,怎么办? 你的这个模型可能不适合大量消息处理的项目 关于你提出来的那两个原因。。。 个人认为,良好的设计和编码测试是可以规避的