.benchmarks

git-svn-id: svn://ultimatepp.org/upp/trunk@13465 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2019-07-01 22:26:13 +00:00
parent 74b001aa4c
commit f154d13127
8 changed files with 81 additions and 67 deletions

View file

@ -3,7 +3,7 @@
using namespace Upp;
void *ptr[10000000];
void *ptr[20000000];
struct Record {
int tid;
@ -16,7 +16,7 @@ CONSOLE_APP_MAIN
StdLogSetup(LOG_COUT|LOG_FILE);
RLOG("Decompressing");
Record *r;
int64 l;
int l;
{
String s = LZMADecompress(LoadDataFile(
// "ide.lzma"
@ -41,7 +41,7 @@ CONSOLE_APP_MAIN
Record *end = r + l / 16;
for(Record *s = r; s < end; s++)
if(s->sz != 0xffffffffffffffff)
if(s->sz != 0xffffffffffffffff) {
if(s->sz <= 992)
smalln++;
else
@ -49,6 +49,7 @@ CONSOLE_APP_MAIN
largen++;
else
hugen++;
}
RDUMP(smalln);
RDUMP(largen);

BIN
benchmarks/Heap/index3.lzma Normal file

Binary file not shown.

Binary file not shown.

View file

@ -8,89 +8,100 @@ CONSOLE_APP_MAIN
#ifdef _DEBUG
const int v_num = 10000;
#else
const int v_num = 100000;
const int v_num = 1000;
#endif
const int isize = 100;
const int N = 100;
Vector<int> data;
for(int i = 0; i < isize; i++)
for(int i = 0; i < isize * v_num; i++)
data.Add(Random());
{
Vector<Index<int> > v;
v.SetCount(v_num);
for(int ii = 0; ii < N; ii++) {
{
RTIMING("FindAdd v_num outer");
for (int j = 0; j < v_num; ++j)
Vector<Index<int> > v;
v.SetCount(v_num);
{
RTIMING("inner FindAdd v_num");
int *s = data;
for (int i = 0; i < isize; ++i)
v[j].FindAdd(data[i]);
for (int j = 0; j < v_num; ++j)
v[j].FindAdd(*s++);
}
{
RTIMING("inner UnlinkKey v_num");
int *s = data;
for (int i = 0; i < isize; ++i)
for (int j = 0; j < v_num; ++j)
v[j].UnlinkKey(*s++);
}
RTIMING("inner Sweep v_num");
const int jsize = v_num;
for (int j = 0; j < jsize; ++j)
v[j].Sweep();
}
{
RTIMING("UnlinkKey v_num outer");
for (int j = 0; j < v_num; ++j)
for (int i = 0; i < isize; ++i)
v[j].UnlinkKey(data[i]);
}
RTIMING("Sweep v_num outer");
const int jsize = v_num;
for (int j = 0; j < jsize; ++j)
v[j].Sweep();
}
{
Vector<Index<int> > v;
v.SetCount(v_num);
{
RTIMING("FindAdd v_num inner");
for (int i = 0; i < isize; ++i)
Vector<Index<int> > v;
v.SetCount(v_num);
{
RTIMING("outer FindAdd v_num");
int *s = data;
for (int j = 0; j < v_num; ++j)
v[j].FindAdd(data[i]);
}
{
RTIMING("UnlinkKey v_num inner");
for (int i = 0; i < isize; ++i)
for (int i = 0; i < isize; ++i)
v[j].FindAdd(*s++);
}
{
RTIMING("outer UnlinkKey v_num");
int *s = data;
for (int j = 0; j < v_num; ++j)
v[j].UnlinkKey(data[i]);
}
RTIMING("Sweep v_num inner");
const int jsize = v_num;
for (int j = 0; j < jsize; ++j)
v[j].Sweep();
}
{
std::set<int> *v = new std::set<int>[v_num];
{
RTIMING("insert v_num outer");
for (int j = 0; j < v_num; ++j)
for (int i = 0; i < isize; ++i)
v[j].insert(data[i]);
for (int i = 0; i < isize; ++i)
v[j].UnlinkKey(*s++);
}
RTIMING("outer Sweep v_num");
const int jsize = v_num;
for (int j = 0; j < jsize; ++j)
v[j].Sweep();
}
{
RTIMING("erase v_num outer");
for (int j = 0; j < v_num; ++j)
for (int i = 0; i < isize; ++i)
v[j].erase(data[i]);
}
delete[] v;
}
{
std::set<int> *v = new std::set<int>[v_num];
{
RTIMING("insert v_num inner");
for (int i = 0; i < isize; ++i)
std::set<int> *v = new std::set<int>[v_num];
{
RTIMING("outer insert v_num");
int *s = data;
for (int j = 0; j < v_num; ++j)
v[j].insert(i);
for (int i = 0; i < isize; ++i)
v[j].insert(*s++);
}
{
RTIMING("outer erase v_num");
int *s = data;
for (int j = 0; j < v_num; ++j)
for (int i = 0; i < isize; ++i)
v[j].erase(*s++);
}
delete[] v;
}
{
RTIMING("erase v_num inner");
for (int i = 0; i < isize; ++i)
for (int j = 0; j < v_num; ++j)
v[j].erase(i);
std::set<int> *v = new std::set<int>[v_num];
{
RTIMING("inner insert v_num");
int *s = data;
for (int i = 0; i < isize; ++i)
for (int j = 0; j < v_num; ++j)
v[j].insert(*s++);
}
{
RTIMING("inner erase v_num");
int *s = data;
for (int i = 0; i < isize; ++i)
for (int j = 0; j < v_num; ++j)
v[j].erase(*s++);
}
delete[] v;
}
delete[] v;
}
}

View file

@ -5,5 +5,6 @@ file
Index.cpp;
mainconfig
"" = "";
"" = "",
"" = "USEMALLOC";

View file

@ -37,6 +37,7 @@ CONSOLE_APP_MAIN
for (int j = 0; j < jsize; ++j)
v[j].Sweep();
}
return;
{
Vector<Index<String> > v;
v.SetCount(v_num);