最近一直在思考要不要为.net写一个对象池。看了后面的结果,我看是不用了。.net的内存管理实际上已经进入了一次优化。也许就是我们常用的对象池。

先看.net代码:

[TestMethod]

public void TestAllocPakcage()

{

byte[] pkg;

for (int i = 0; i < 50000; i++)

{

pkg = new byte[2048];

pkg[100] = 1;

}

}

测试结果:

再看c++代码:

 #include "stdafx.h"

#include "time.h"

 

 

class Packet

{

public:

    char buffer[2024];

};

 

int _tmain(int argc, _TCHAR* argv[])

{

    Packet* test;

    clock_t start,end;

 

    start = clock();

    for(int i = 0; i < 50000; i ++)

    {

        test = new Packet();

        for(int j = 0;j < 100; j ++)

        {

            test->buffer[j] = j;

        }

        delete test;

    }

    end = clock();

 

    double duration = (double)(end - start) / CLOCKS_PER_SEC;

    printf( "%f seconds\n", duration );

 

    getchar();

    return 0;

}

 

测试结果:

如果有什么错误,请大家指出。

posted on 2008-10-08 10:43  以天  阅读(217)  评论(0编辑  收藏  举报