yysn
初级用户
积分 65
发帖 26
注册 2010-7-29
状态 离线
|
『楼 主』:
DOS下程序的内存占用要怎么看啊?
mem命令可以查看正在运行的程序的占用内存大小。
所以,本人写了一个小程序,想测试一下看看,然后发现了一个问题。
先贴上代码:
#include <stdio.h>
#include <stdlib.h>
#include <alloc.h>
int main(int argc,char *argv[])
{
FILE *fp;
char buf[64];
fp = fopen("coreleft.txt", "a+b");
if(NULL != fp)
{
fprintf(fp, "coreleft = %lu byte\n", (unsigned long)coreleft());
fflush(fp);
fclose(fp);
}
if(argc>1)
{
sprintf(buf, "mem /M %s > mem-m.txt", argv[1]);
system(buf);
}
system("mem /C > mem-c.txt");
system("mem /D > mem-d.txt");
return 0;
}
然后在DOS命令行下运行 memtest memtest ,此时会生成3个文件。
很诧异的是,就这么一个小程序,居然占用内存达到了72K
Modules using memory below 1Mb:
Name Total = Conventional + Upper Memory
-------- ---------------- ---------------- ----------------
SYSTEM 29,296 (29K) 29,232 (29K) 64 (0K)
SETVER 784 (1K) 784 (1K) 0 (0K)
HIMEM 768 (1K) 768 (1K) 0 (0K)
EMM386 3,392 (3K) 3,392 (3K) 0 (0K)
COMMAND 2,656 (3K) 2,656 (3K) 0 (0K)
MEMTEST 128 (0K) 128 (0K) 0 (0K)
MEMTEST 73,680 (72K) 73,680 (72K) 0 (0K)
ETHDRV 53,120 (52K) 53,120 (52K) 0 (0K)
COMMAND 2,816 (3K) 2,816 (3K) 0 (0K)
PROTMAN 112 (0K) 0 (0K) 112 (0K)
DC21X4 42,432 (41K) 0 (0K) 42,432 (41K)
DIS_PKT 3,504 (3K) 0 (0K) 3,504 (3K)
ETHDRV 22,112 (22K) 0 (0K) 22,112 (22K)
FREE 503,856 (492K) 488,768 (477K) 15,088 (15K)
不知道怎么回事?
代码查看附件
附件
1: 检测内存.rar (2010-11-15 14:49, 10.44 K,下载次数: 7)
|
|