|
本人ACE新手,最近在开发项目时遇到了问题。(vs2008)
当使用ACE的反应器中连接器建立连接时,如果使用同步阻塞方式连接,程序退出时不会有内存泄露。
如果设置超时时间,建立连接时则会发现有一次性的44+28字节的内存泄露。如下所示。
{7987} normal block at 0x00DE6BD8, 44 bytes long.
Data: < ` > 00 00 00 00 60 0D 16 00 FF FF FF FF 00 00 00 00
{7986} normal block at 0x0039CBD8, 28 bytes long.
Data: < > E8 EF 15 00 FF FF FF FF 00 00 00 00 00 00 00 00
如果在连接时使用异步连接方式如下程序所示,就会产生一次性的内存泄露44+28字节,同上,和循环内存泄露40字节(每connect一次就泄露40字节),如下。
{7987} normal block at 0x00DE6BD8, 44 bytes long.
Data: < ` > 00 00 00 00 60 0D 16 00 FF FF FF FF 00 00 00 00
{7986} normal block at 0x0039CBD8, 28 bytes long.
Data: < > E8 EF 15 00 FF FF FF FF 00 00 00 00 00 00 00 00
{7899} normal block at 0x00DE6CA8, 40 bytes long.
Data: < T 9 > 04 54 06 10 01 00 00 00 00 00 00 00 E8 D6 39 00
{7801} normal block at 0x00DE6C40, 40 bytes long.
以上泄露都是在程序退出时发现的,下面是我简化了的测试程序,不知道是我在程序退出时少调用了某些函数还是什么其他的原因,希望大侠们能够指点一下小弟,小弟跪谢。 |
|