memory-management - 什么类型的输入会减慢动态内存分配器 malloc() 和 free() 的执行时间?

标签 memory-management operating-system real-time dynamic-memory-allocation cpu-architecture

我对计算实时系统的最坏情况执行时间感到好奇,并且我正在尝试找到极端场景来预测最坏情况时间。

什么类型的输入场景会减慢动态内存分配速度?谢谢。

最佳答案

空闲列表为空是一种情况,需要操作系统提供新内存。空闲列表很大,但充满了太小而无法满足当前请求的小块,这将是另一种情况:可能会在找到一个之前触发遍历大列表,或者退回到另一种获取新内存的方式。

很明显,您需要设计一个分配器的数据结构来避免该问题,也许可以通过按大小对空闲列表进行分组,特别是在考虑实时最坏情况时。

这只是我的想法,而且我没有参与设计,所以这当然不是一个详尽的列表。

关于memory-management - 什么类型的输入会减慢动态内存分配器 malloc() 和 free() 的执行时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66950691/

相关文章:

iOS popViewController 不释放内存并且不调用 dealloc

c++ - Windows 与 Linux 内存分配/std::list 构造函数性能

parallel-processing - 并发和同时的区别?

c++ - WASAPI:识别环回记录中的非事件 channel

web-applications - 带有实时数据的 Web 应用程序流程图/流程图

C++ 保护类的私有(private) char *

linux - 时间片是同步的还是异步的,为什么?

php - 从 PHP exec() 函数读取 git push 的输出

facebook - 如何订阅 Facebook 页面墙的实时更新

c - 检测到堆栈粉碎 : running program with dinamically allocated array of structures