V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
luffy
V2EX  ›  程序员

哪些场景下会需要手动进行内存管理

  •  
  •   luffy · 2022-05-18 12:22:41 +08:00 · 1875 次点击
    这是一个创建于 945 天前的主题,其中的信息可能已经有所发展或是发生改变。

    除了下面这几种外, 还有哪些场合需要进行手动内存管理的?

    • 开发新型操作系统
    • 给 linux kernel 提交补丁
    • 嵌入式开发,需要跟硬件打交道
    • 跟 OS 有深度交互的需求
    • 修改 android 源码?
    9 条回复    2022-05-19 17:54:42 +08:00
    nevin47
        1
    nevin47  
       2022-05-18 12:26:29 +08:00
    和内存子系统打交道的场景其实很少,包括 Linux kernel ,大多数时候依旧是在使用被 Linux Memory Subsystem 管理着的虚拟内存系统。即便是 Linux Kernel 所认识的 Physical Address ,也是被 Memory Controller 包装过的 frame number

    一般来说嵌入式是比较典型的真正在操作物理内存的场景,其次就是真正开发内存子系统的情况
    kikitte
        2
    kikitte  
       2022-05-18 12:26:33 +08:00
    科学计算,涉及大量数据处理的应该都需要很小心对内存进行管理
    Juszoe
        3
    Juszoe  
       2022-05-18 13:07:41 +08:00
    @kikitte #2 科学计算不是加钱就完事了吗,内存泄露就泄露,吃满算我输(doge
    lanlanye
        4
    lanlanye  
       2022-05-18 13:16:39 +08:00 via iPhone
    使用 C 或 C++
    TimothyT
        5
    TimothyT  
       2022-05-18 15:25:46 +08:00 via iPhone
    补充一个并行计算吧,cpu 执行的代码需要手动申请显存(不严谨,只是讲得简单点
    iamzuoxinyu
        6
    iamzuoxinyu  
       2022-05-18 15:44:50 +08:00 via Android
    涉及到编解码的…
    billlee
        7
    billlee  
       2022-05-18 16:18:26 +08:00 via Android
    数据库开发
    secondwtq
        8
    secondwtq  
       2022-05-18 18:32:27 +08:00   ❤️ 1
    楼主就是没提跟性能相关的场景,一半都需要折腾内存

    简单换个 malloc 库就可能有几个点到十几个点的提升
    前俩月一个业余项目,就弄了个简单内存池,就少了几倍 cache miss
    echoechoin
        9
    echoechoin  
       2022-05-19 17:54:42 +08:00
    涉及到没有内存回收机制的编程语言?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5325 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 07:58 · PVG 15:58 · LAX 23:58 · JFK 02:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.