[STM32F1] 堆申请会占用很多时间嘛?

[复制链接]
542|10
 楼主| 哪吒哪吒 发表于 2025-4-22 14:49 | 显示全部楼层 |阅读模式
申请一次堆会占用多少时长?
xiaoqizi 发表于 2025-6-5 09:10 | 显示全部楼层
堆的申请时间取决于堆管理算法、硬件性能以及堆的实现方式
木木guainv 发表于 2025-6-5 11:21 | 显示全部楼层
固定分区分配申请时间较短,只需检查空闲块并标记为已用
Jiangxiaopi 发表于 2025-6-5 13:43 | 显示全部楼层
复杂堆实现可能涉及内存合并、分割等操作,进一步增加耗时
荣陶陶 发表于 2025-6-5 16:11 | 显示全部楼层
低频率或低MIPS的单片机执行堆管理代码较慢
Zhiniaocun 发表于 2025-6-5 18:31 | 显示全部楼层
频繁申请和释放不同大小的内存块会导致堆碎片化,迫使堆管理算法花费更多时间寻找合适的空闲块
Zuocidian 发表于 2025-6-5 20:50 | 显示全部楼层
如果系统对实时性要求高,尽量避免在堆中动态申请内存,改用静态分配或内存池
Puchou 发表于 2025-6-5 23:07 | 显示全部楼层
在实时性要求高的应用里边,
堆申请可能成为系统瓶颈

Xiashiqi 发表于 2025-6-6 09:22 | 显示全部楼层
需要根据工作电压、传输速率、测试标准调整器件参数
小海师 发表于 2025-6-6 11:41 | 显示全部楼层
如果堆申请频率低且对象大小固定,可接受一定的时间开销
Haizangwang 发表于 2025-6-6 13:56 | 显示全部楼层
若必须使用堆,选择轻量级堆管理算法并减少碎片化
光辉梦境 发表于 2025-6-9 09:30 | 显示全部楼层
首次适应遍历空闲链表,找到第一个足够大的内存块。时间复杂度为O(n),n为空闲链表长度。
别乱了阵脚 发表于 2025-6-9 10:00 | 显示全部楼层
最佳适应遍历空闲链表,找到最小的足够大的内存块。时间复杂度为O(n),但可能因频繁分割内存块导致碎片化
江河千里 发表于 2025-6-9 10:30 | 显示全部楼层
快速分配器,使用多级索引结构,时间复杂度接近O(1)。适合实时系统,但实现复杂
淡漠安然 发表于 2025-6-9 11:00 | 显示全部楼层
外部碎片,空闲内存被分割成小块,导致无法满足大块内存请求。分配器需遍历更多空闲块,增加时间开销
夜阑风雨 发表于 2025-6-9 12:00 | 显示全部楼层
内部碎片分配的内存块比请求的大,浪费部分空间。不直接影响时间,但可能加剧碎片化
暖了夏天蓝了海 发表于 2025-6-9 13:05 | 显示全部楼层
小内存请求通常快速,但可能加剧碎片化。大内存请求需遍历更多空闲块,时间开销更大
冰春彩落下 发表于 2025-6-9 14:32 | 显示全部楼层
高负载时堆可能被频繁分配和释放,导致碎片化加剧。分配时间可能显著增加
三生万物 发表于 2025-6-9 15:08 | 显示全部楼层
简单分配器在STM32F1上,小内存请求(如几十字节)通常在微秒级完成。大内存请求(如几KB)可能在毫秒级完成,具体取决于碎片化程度
远山寻你 发表于 2025-6-9 19:00 | 显示全部楼层
优化分配器分配时间可稳定在微秒级,适合实时系统
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

336

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部