heap -s命令的输出需要澄清
output of !heap -s command need clarifications
我正在尝试理解!heap -s命令的输出。我知道每个进程都有一个默认的堆,所有的分配都在这里完成。应用程序可以创建自己的堆。输出中的每一行是否显示了不同的堆?如果是这样,这是否意味着应用程序已经创建了这么多堆,或者窗口也可以创建多个堆?
0:000> !heap -s
Heap Flags Reserv Commit Virt Free List UCR Virt Lock Fast
(k) (k) (k) (k) length blocks cont. heap
-------------------------------------------------------------------------------------
Virtual block: 000000000a790000 - 000000000a790000 (size 0000000000000000)
Virtual block: 000000000ac50000 - 000000000ac50000 (size 0000000000000000)
0000000000430000 00000002 48256 31976 48256 558 512 7 2 5 LFH
0000000000010000 00008000 64 4 64 1 1 1 0 0
0000000000680000 00001002 1088 368 1088 9 5 2 0 0 LFH
00000000005e0000 00041002 512 8 512 3 1 1 0 0
0000000000380000 00001002 1088 408 1088 5 5 2 0 0 LFH
0000000000840000 00041002 512 16 512 0 1 1 0 0
0000000000d00000 00001002 512 340 512 3 8 1 0 0 LFH
00000000003a0000 00041002 512 8 512 3 1 1 0 0
000000000c3d0000 00001002 512 344 512 3 22 1 0 0 LFH
000000000c5d0000 00001002 512 336 512 5 10 1 0 0 LFH
0000000000c80000 00001002 64 8 64 3 1 1 0 0
000000000c7d0000 00001002 64 8 64 3 1 1 0 0
000000000b770000 00011002 512 32 512 19 7 1 0 0
0000000000b70000 00001002 1088 368 1088 8 9 2 0 0 LFH
000000000d980000 00001002 512 8 512 3 2 1 0 0
000000000db60000 00001002 64448 37556 64448 34615 196 27 0 0 LFH
External fragmentation 92 % (196 free blocks)
000000000f4b0000 00001002 3136 1928 3136 1198 39 3 0 0 LFH
External fragmentation 62 % (39 free blocks)
0000000015780000 00001002 64064 41784 64064 20339 308 16 0 8 LFH
External fragmentation 48 % (308 free blocks)
000000000e360000 00001002 512 8 512 3 1 1 0 0
-------------------------------------------------------------------------------------
是的,每一行代表一个不同的堆。进程中运行的任何代码都可以通过调用HeapCreate()来创建堆。该代码包括MS dll(如msvcrt.dll)、第三方dll和您自己的代码。
相关文章:
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- C++编译器命令 C++ 不会生成输出
- 使用提升过程获取 shell 命令的标准输出
- cmake add_custom_command + Xcode:多输出 = 多命令调用
- gdb 中的列表命令不输出我编写的代码
- Windows 10命令提示符的输出不正确
- 如何在C++中执行命令并获取命令的返回代码标准输出和标准
- 获取使用p4api运行的Perforce命令的输出
- 执行ls命令并打印输出
- bcdedit 文件输出不起作用,但其他命令可以
- 在结束运行之前获取 c++ 中的 shell 命令输出
- 输出错误命令的条件语句
- 将 Tcl 中的命令输出重定向到文件时,文件以 DOS 格式生成
- 将 Linux system() 调用命令的输出重定向到仅可变的
- popen() 将执行命令的输出写入 cout
- 在 Windows 命令行中运行.exe在使用 2 种相同方式执行时会产生不同的输出
- 在程序中获取 Linux 'dd' 命令的输出时遇到问题C++
- 终端命令输出到 CPP 中的数组
- 试图输出命令行参数会产生一个看似随机的十六进制数