V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rv54ntjwfm3ug8
V2EX  ›  程序员

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

  •  
  •   rv54ntjwfm3ug8 · 2022-04-12 20:10:04 +08:00 · 1853 次点击
    这是一个创建于 741 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    https://docs.microsoft.com/zh-cn/aspnet/core/performance/memory?view=aspnetcore-6.0
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5373 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 07:45 · PVG 15:45 · LAX 00:45 · JFK 03:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.