除了测量重新编译前后的启动时间和内核大小之外,还有哪些其他有用的指标可以确定自定义编译的内核是否可以提高系统性能?我知道性能提升会很小,但我想知道之前和之后是否有任何差异。
编辑:CPU是x86 32位。
答案1
假设您运行的是 x86_64 (amd64) 架构,不要期望性能有巨大差异。这种架构为处理器功能提供了新的基准(与可能追溯到 i386 的 32 位代码相比)。
此外,在 32 位世界中,内核和 C 库已经针对不同的最小体系结构(i586、i686 等)进行了编译。
最后,游戏、压缩库、加密工具、3D 渲染等可能已经包含核心功能的多种实现,这些实现为当前硬件选择最有效的实现。
但如果您必须:尝试找到一个可靠的标准基准测试套件来衡量对您重要的性能特征。多次运行并寻找一致的结果。
编译您自己的内核,然后多次运行它。
如果您发现任何差异,请返回原始内核并查看差异是否仍然存在。
然后返回到新内核并查看差异是否仍然存在。
许多事情都会造成测量结果的微小差异,我不认为您会实现任何巨大的差异。
答案2
简单:在运行旧内核和运行自定义内核时运行代表性测试并比较结果。
这里的关键是“代表性”:不同的工作负载会有不同的性能要求,并且在不同的内核设置上可能工作得更好或更差。您的自定义编译内核可能会提高某些应用程序的性能,但会损害其他应用程序。
无论哪种方式,我都不会期望有很大的差异。使用自定义内核通常没有意义,尤其是在您没有特定目标的情况下。