WSL2相比较其它虚拟化的一个优势就是WSL2虚机与宿主机共享内存。例如宿主机内存为16G,在 WSL2 LINUX实例中看到和能够使用的内存也是16G

但在以前的版本中,WSL2实例中消耗的内存,并不会主动还给宿主机(WIN10)。在10月底 Windows Insider Preview Build 19013更新中解决了这个问题,并在本人环境中经过了测试。

以下是一段C测试代码,首先申请3G内存,然后等待键盘输入数字回车后,释放内存。

    #include <stdlib.h>#include <stdio.h>int main() {int i = 0;char* buffer = (char*) calloc(3000000000,1);printf("Done allocating\n");scanf("%d",&i);free(buffer);return 0;}

编译该C代码运行后,我们可以看到这一内存占用与释放并归还给宿主机的过程。
宿主机中我们可以通过查看 vmmem进程的内存占用获得分配给WSL2实例的进程:

WSL2实例中通过 free -h命令获得内存占用情况:

原文地址: https://devblogs.microsoft.com/commandline/memory-reclaim-in-the-
windows-subsystem-for-linux-2/

WSL2跟踪 - 19013: Memory Reclaim内存回收相关推荐

  1. Advanced Memory Allocation 内存分配进阶

    Advanced Memory Allocation 内存分配进阶 URL: http://blog.csdn.net/amwihihc/article/details/7481656 May 01, ...

  2. 内存管理(五)——内存回收

    前言 上一篇介绍完了虚拟内存,这篇将要给内存管理收个尾,介绍以下内存是如何回收的. 这里所要讲的内存回收,并不是虚拟内存中的页面置换(当可使用的物理空间不足时,需要把部分页换出),而是指对用户空间中的 ...

  3. linux内存回收(一)---kswapd回收

    ​ 正式开始十一之旅,有大量的时间将目前工作中遇到的内存回收进行总结下,主要是对内存回收的整个过程进行重新梳理.在linux操作系统中,当内存充足的时候,内核会尽量使用内存作为文件缓存(page ca ...

  4. 【Linux内核】内存管理——内存回收机制

    转载请注明: https://www.cnblogs.com/Ethan-Code/p/16626560.html 内存回收的方式 前文提到malloc的内存分配方式,malloc申请的是虚拟内存,只 ...

  5. [内核内存] [arm64] 内存回收2---快速内存回收和直接内存回收

    文章目录 内存紧张回收 快速内存回收 struct scan_control结构体 __node__reclaim函数介绍 快速内存回收注意事项和小结 直接内存回收 __perform_reclaim ...

  6. Linux内核:内存管理——内存回收

    概述 当linux系统内存压力就大时,就会对系统的每个压力大的zone进程内存回收,内存回收主要是针对匿名页和文件页进行的.对于匿名页,内存回收过程中会筛选出一些不经常使用的匿名页,将它们写入到swa ...

  7. linux内存回收流程

    内核:arm64 kernel-5.0 梳理代码流程要先明白输入和输出,输入一般有参数,输出一般有return 返回的内容以及一些输出的参数,内存回收是在内存分配的过程中产生的,所以先简单看下内存分配 ...

  8. linux内存回收(二)--直接内存回收机制

    上一章,我们学习了kswapd的内存回收的机制,其本身是一个内核线程,它和调用者的关系是异步的,那么本章就开始学习内核的内存回收的方式.因为在不同的内存分配路径中,会触发不同的内存回收方式,内存回收针 ...

  9. 内存回收的一些基本方法

    内存垃圾回收(Garbage Collection)是一个很古老的技术了,最开始在Lisp上出现.如今几乎所有高级语言都有GC,大部分程序员不再需要绞尽脑汁通宵达旦去查找内存泄露的原因了.我以前也不怎 ...

最新文章

  1. win10 更新pip
  2. 怎么用c语言表示大整数的四则运算,用c语言编写大整数的四则运算,求大神
  3. 知乎高赞:一行代码凭什么躺普通程序员的10年工资?
  4. 调用百度音频,文字转音频
  5. ASP.NET Core 中文文档 第二章 指南(4.10)检查自动生成的Detail方法和Delete方法
  6. (CSS3)CSS3- 最常用的属性(一)
  7. 【好文翻译】二十年来我得到的20条编程经验
  8. 部门管理系统_维修工单管理系统的功能介绍
  9. Solidity的三种合约间的调用方式 call、delegatecall 和 callcode
  10. redis 默认过期策略_redis过期策略
  11. UE4 控制开关门基础之一
  12. 飞秋FeiQ可以聊天,但无法传输文件
  13. SurfaceView使用日记(二)--实例:绘画板
  14. 方差与偏差的意义与推导过程
  15. 简单好用的在线P图工具,一定记得收藏
  16. 共同父域下的单点登录
  17. 【visual studio】VsVim 2022
  18. 用latex编写 的论文模版
  19. BZOJ 4605 崂山白花蛇草水 权值线段树+K-D树
  20. 仲裁器设计(二)-- Round Robin Arbiter 轮询调度算法

热门文章

  1. rmse算法matlab代码,rmse matlab代码
  2. 云计算机教室服务器,为何有人觉得云教室的部署和运维比传统计算机机房复杂...
  3. 中国女排变阵1-3遭美国逆转 小组赛2胜3负列第4
  4. Hive DQL数据查询函数
  5. c语言 strtol,strtol ( )【C语言库函数源代码】
  6. JS 中 scrollWidth、scrollHeight、scrollLeft 、scrollTop 详解
  7. scrollLeft属性设置无效的一个记录
  8. java enctype_ENCTYPE=multipart/form-data
  9. 免费物流跟踪轨迹订阅接口技术文档-快递鸟
  10. 一步一步写简易版飞鸽传书(二)