sojod
驱动牛犊
驱动牛犊
  • 注册日期2006-10-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分170分
  • 威望18点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
阅读:3223回复:6

请教lookaside list的效率

楼主#
更多 发布于:2007-06-08 14:31
看到filemon中维护文件全路径名的buffer用lookaside list维护:
ExInitializeNPagedLookasideList( &FullPathLookaside, NULL, NULL,0, MAXPATHLEN, 'mliF', 256 );
请问,如果直接定义局部变量(字符串数组)在栈里维护的话:
char FullPathName[MAXPATHLEN];
效率会有什么差别?高了?低了? 为什么?
谢谢

最新喜欢:

精灵dsp精灵dsp
zzzevazzz
驱动小牛
驱动小牛
  • 注册日期2002-12-27
  • 最后登录2020-06-29
  • 粉丝0
  • 关注0
  • 积分1008分
  • 威望242点
  • 贡献值0点
  • 好评度170点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2007-06-12 02:54
引用第4楼sojod于2007-06-10 20:11发表的  :
楼上正解。
那么,是不是filemon中用来缓存文件全路径名的buffer完全可以用字符串数组呢?


 不好,因为内核栈太小,有被用完的可能。特别是在文件系统过滤驱动这种可能重入的钩子里。
[b][url]http://hi.baidu.com/zzzevazzz[/url][/b]
yandong_8212
驱动小牛
驱动小牛
  • 注册日期2006-07-28
  • 最后登录2011-02-11
  • 粉丝0
  • 关注0
  • 积分1046分
  • 威望464点
  • 贡献值1点
  • 好评度173点
  • 原创分0分
  • 专家分1分
板凳#
发布于:2007-06-11 18:30
lookaside很明显可以提高效率,不是可有可无的.当你分配频率很高时,会产生大量碎片,必须使用lookaside list,否则会分配失败.必要的时候应该自己封装一下分配函数,按不同大小级别来分配.
商务MSN:YanDong_8212@163.com
sojod
驱动牛犊
驱动牛犊
  • 注册日期2006-10-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分170分
  • 威望18点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-06-10 20:11
楼上正解。
那么,是不是filemon中用来缓存文件全路径名的buffer完全可以用字符串数组呢?
zzzevazzz
驱动小牛
驱动小牛
  • 注册日期2002-12-27
  • 最后登录2020-06-29
  • 粉丝0
  • 关注0
  • 积分1008分
  • 威望242点
  • 贡献值0点
  • 好评度170点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2007-06-09 00:10
楼主的比较没意义。
少量数据的话,用栈当然快。
后备列表是给较多数据量设计的。用完当然要还,不然内存就耗尽了。
[b][url]http://hi.baidu.com/zzzevazzz[/url][/b]
sojod
驱动牛犊
驱动牛犊
  • 注册日期2006-10-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分170分
  • 威望18点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-06-08 22:06
引用第1楼driverdance于2007-06-08 17:28发表的  :
效率上不会有差别。ExInitializeNPagedLookasideList主要是方便自己管理内存。

谢谢,不过如果说方便的话我感觉用字符串数组更方便呀,因为只需要定义,不用考虑释放内存的问题,用lookaside list还要初始化,要拿过来,还必须记得还回去,而且拿和还所用的API的执行时间应该也耗时间的吧?
driverdance
驱动牛犊
驱动牛犊
  • 注册日期2007-04-18
  • 最后登录2007-08-13
  • 粉丝0
  • 关注0
  • 积分640分
  • 威望65点
  • 贡献值0点
  • 好评度64点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-06-08 17:28
效率上不会有差别。ExInitializeNPagedLookasideList主要是方便自己管理内存。
承接WDM和hook的项目。
游客

返回顶部