• 请不要在回答技术问题时复制粘贴 AI 生成的内容
rv54ntjwfm3ug8
V2EX  ›  程序员

为什么 ASP.NET Core 写的网站在启动后一段时间内不断访问内存会线性增长,没有下降趋势?为什么其它语言写的 Web 程序没有这种现象?

  •  
  •   rv54ntjwfm3ug8 · Apr 12, 2022 · 2728 views
    This topic created in 1499 days ago, the information mentioned may be changed or developed.

    自带的 MVC 模板,每按一次 F5 内存占用固定增大 0.8MB 这是什么机制,占到什么程度会开始释放?难道假设我只有 1GB RAM ,只能处理 100 个请求?

    11 replies    2022-04-13 16:05:47 +08:00
    frankyzf
        2
    frankyzf  
       Apr 12, 2022
    不知道你用的哪个版本,感觉 net 6.0 比以前的版本在内存控制方面好些
    roundgis
        3
    roundgis  
       Apr 12, 2022 via Android
    那 oom 沒有?
    userforg2021
        4
    userforg2021  
       Apr 12, 2022
    1. 其它语言是哪些语言;
    2. 100*0.8=80 ;
    3. 了解一下 GC 工作机制,以及.net 的 Workstation GC 和 Server GC ;
    4. 开 IDE 调试看看有没有触发 GC ,手动触发 GC 试试;
    Leviathann
        5
    Leviathann  
       Apr 12, 2022
    可能没有归还给操作系统
    java 应该也是这样,除非是 12 以后的版本 g1gc + 开启 G1PeriodicGCInterval 才会比较明显的归还内存
    而 13 以后使用 zgc 的话是默认开启归还的
    wanguorui123
        6
    wanguorui123  
       Apr 12, 2022
    可能是 GC 延迟回收吧
    hez2010
        7
    hez2010  
       Apr 13, 2022 via Android   ❤️ 1
    GC 不会立即 decommit 掉分配的内存的,因为很可能刚刚使用的内存很快又会被使用。
    如果代码中没有内存泄漏的 bug 的话,这个数值不会一直往上增长,而是最终会维持在一个稳定的范围内。
    seakingii
        8
    seakingii  
       Apr 13, 2022   ❤️ 1
    搞个 ab 压力测试下会不会内存无限增长
    INCerry
        9
    INCerry  
       Apr 13, 2022
    ragnaroks
        10
    ragnaroks  
       Apr 13, 2022
    不存在你说的问题,3.1 起一个默认模板项目,调试模式初始占用 70M ,多次 F5 后固定在 80M 上下浮动
    MonoLogueChi
        11
    MonoLogueChi  
       Apr 13, 2022 via Android
    先要搞明白,其他语言是哪些语言,以及这些语言为什么能做到占用内存比较小。

    只要处理请求,就会产生内存占用,要想内存占用始终保持在一个比较低的水平,就要频繁回收内存,但是回收内存会对性能产生影响,内存释放和回收的越频繁,对整体性能影响就越大,就是时间换空间的问题

    https://docs.microsoft.com/zh-cn/aspnet/core/performance/memory?view=aspnetcore-6.0
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5127 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 05:44 · PVG 13:44 · LAX 22:44 · JFK 01:44
    ♥ Do have faith in what you're doing.