V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
luffy
V2EX  ›  程序员

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

  •  
  •   luffy · May 18, 2022 · 2481 views
    This topic created in 1440 days ago, the information mentioned may be changed or developed.

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

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

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

    简单换个 malloc 库就可能有几个点到十几个点的提升
    前俩月一个业余项目,就弄了个简单内存池,就少了几倍 cache miss
    echoechoin
        9
    echoechoin  
       May 19, 2022
    涉及到没有内存回收机制的编程语言?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3468 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 10:53 · PVG 18:53 · LAX 03:53 · JFK 06:53
    ♥ Do have faith in what you're doing.