多次使用krealloc与一次分配足够大的空间

时间:2017-01-06 20:08:25

标签: c linux memory-management linux-kernel kernel

在编写Linux内核的扩展时(例如添加新的系统调用),我将保持数据大小在运行时可以动态更改。

我可以采取两种替代方法。首先是使用 kmalloc 分配初始空间,并在必要时使用 krealloc 重新分配。第二个是使用 kmalloc 分配足够大的空间,而不必调整它的大小。您可以假设我的数据大小上限,“足够大”是一个定义明确的值,比如说 N 。我想知道在内核空间编码时应该采用哪种方法的指南。

即使在用户空间进行编码,多次重新分配的时间开销与分配大空间之间的权衡也是显而易见的。但我的问题是询问是否有建议的方法。如果没有,并且取决于具体情况, N 值应该被认为是多大的空间,或者对krealloc的频繁调用应该被认为太多,导致一个选择其他方法?

0 个答案:

没有答案