我做了一个FTP的服务器和客户端的程序,现在已经在正式运行了, 但是内存问题是我的一个心头大患.事前我在客户的服务器上(至强双CPU的HP服务器, 1G内存)进行大流量的文件, 直到把它的20G的硬盘撑满为止, 没有出现文件传送错误, 但是最后程序退出的时候, 内存好象有点问题, 程序表面上退出了, 但是还在内存中, 要从任务管理器中删除才可以!但是之前我在自己的奔三450普通电脑做的开发用的服务器上用六台电脑不停止的传送文件, 我的服务器程序一定最后会因为内存问题而崩溃. 因为现实应用环境没有那么频繁地传送文件, 所以现在系统已经稳定运行了五天了.同时我不停地在我的开发电脑上XP HOME版本, VC6 + SP6, 进行测试, 并且用BOUNDERSCHECKER进行辅助, 但是压根就没有发现内存泄露的问题. 于是我从程序上仔细检查, 从可能的地方进行补丁, 现在泄漏的速度比较慢了, 更惊奇的是, 我放在了W2K 专业版的普通家用电脑上做服务器, 居然没有任何泄露了, 但是让我困惑的是, 在我的XP+SP2开发电脑上, 泄露继续在缓慢而稳定地继续着. 至于我是如何确定有内存泄露的, 我是主要看任务管理器的.
例如我的程序在不断地运行,
在下午2点的时候,
PF 137MB
Handles 6212
Threads 344
Processed 35Avaliable 183188KB
我的程序在内存中5260KB到了晚上6点
PF 145MB
Handles 6201
Threads 344
Processes 35Available 167376KB
我的程序是12312KB可见程序本身占用的内存明显增大, 可用的物理内存明显变小, 而且当我停了我的程序后, 系统可用内存不会回到原来那么大!现在我的困惑就是XP下为什么会有这种情况发生. 注, 我所有的程序都是用同一个程序测试的,都是在XP下生成的!
例如我的程序在不断地运行,
在下午2点的时候,
PF 137MB
Handles 6212
Threads 344
Processed 35Avaliable 183188KB
我的程序在内存中5260KB到了晚上6点
PF 145MB
Handles 6201
Threads 344
Processes 35Available 167376KB
我的程序是12312KB可见程序本身占用的内存明显增大, 可用的物理内存明显变小, 而且当我停了我的程序后, 系统可用内存不会回到原来那么大!现在我的困惑就是XP下为什么会有这种情况发生. 注, 我所有的程序都是用同一个程序测试的,都是在XP下生成的!
2,相同API在W2k,XP上有的执行正常,有的就会不正常(如:执行时间偏长),倒是遇到过,不过你这种我倒没遇到过。
3,用Intel的VTune查查看,他主站上有试用版下载。