首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Linux内核不长时间使用模块化?

为什么Linux内核不长时间使用模块化?
EN

Stack Overflow用户
提问于 2013-06-27 10:57:13
回答 1查看 1.4K关注 0票数 3

模函数timespec规范化中,内核代码通过循环计算模块,并防止编译器将循环优化为模块化操作符。

为什么要这么做?

我希望如果这个优化不是很好,编译器就不会这么做。但是,可能存在这种优化速度更快的体系结构。为什么所有架构都需要这段代码?

EN

回答 1

Stack Overflow用户

发布于 2013-06-27 11:37:11

如果程序员知道红利只会比除数稍微大一点(因此迭代版本只会循环一两次),就会这样做。不能指望编译器能搞清楚这一点。div64.c中的这个注释解释了这一点

代码语言:javascript
复制
/*
 * Iterative div/mod for use when dividend is not expected to be much
 * bigger than divisor.
 */

您所指向的模块化函数是iter_div_u64_rem(),在需要时显式使用;对于常规的模块化版本,有div_u64_rem()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17341298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档