ultimatepp/uppdev/Malloc7/Malloc.cpp
cxl 4a1c627474 Adding uppdev....
git-svn-id: svn://ultimatepp.org/upp/trunk@328 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2008-08-15 08:36:24 +00:00

116 lines
2.2 KiB
C++

#include "Malloc.h"
#ifdef _DEBUG
#define N 1000
#else
#define N 1000*1000
#endif
byte randb[500];
CONSOLE_APP_MAIN
{
HeapTest(); return;
IdMapBenchmark(); return;
for(int i = 0; i < 500; i++)
randb[i] = rand();
heap.Init();
// if(0)
{
{
RTIMING("NewAlloc 1");
for(int i = 0; i < 10 * N; i++) {
void *p1 = heap.Alloc(10);
heap.Free(p1);
}
}
{
RTIMING("OldAlloc 1");
for(int i = 0; i < 10 * N; i++) {
void *p1 = new byte[10];
delete[] p1;
}
}
}
{
RTIMING("NewAlloc 2");
for(int i = 0; i < 10 * N; i++) {
void *p1 = heap.Alloc(10);
void *p2 = heap.Alloc(10);
heap.Free(p1);
heap.Free(p2);
}
}
{
RTIMING("OldAlloc 2");
for(int i = 0; i < 10 * N; i++) {
void *p1 = new byte[10];
void *p2 = new byte[10];
delete[] p1;
delete[] p2;
}
}
// return;
{
RTIMING("NewAlloc 50");
for(int i = 0; i < N; i++) {
void *p[50];
for(int i = 0; i < 50; i++)
p[i] = heap.Alloc(10);
for(int i = 0; i < 50; i++)
heap.Free(p[i]);
}
}
{
RTIMING("OldAlloc 50");
for(int i = 0; i < N; i++) {
void *p[50];
for(int i = 0; i < 50; i++)
p[i] = new byte[10];
for(int i = 0; i < 50; i++)
delete[] p[i];
}
}
LOG("==========");
{
RTIMING("NewAlloc 500 rnd");
for(int i = 0; i < N / 10; i++) {
void *p[500];
for(int i = 0; i < 500; i++)
p[i] = heap.Alloc(randb[i]);
for(int i = 0; i < 500; i++)
heap.Free(p[i]);
}
}
{
RTIMING("OldAlloc 500 rnd");
for(int i = 0; i < N / 10; i++) {
void *p[500];
for(int i = 0; i < 500; i++)
p[i] = new byte[randb[i]];
for(int i = 0; i < 500; i++)
delete[] p[i];
}
}
{
RTIMING("NewAlloc 5000 rnd");
for(int i = 0; i < N / 100; i++) {
void *p[5000];
for(int i = 0; i < 5000; i++)
p[i] = heap.Alloc(randb[i]);
for(int i = 0; i < 5000; i++)
heap.Free(p[i]);
}
}
{
RTIMING("OldAlloc 5000 rnd");
for(int i = 0; i < N / 100; i++) {
void *p[5000];
for(int i = 0; i < 5000; i++)
p[i] = new byte[randb[i]];
for(int i = 0; i < 5000; i++)
delete[] p[i];
}
}
}