.benchamarks

git-svn-id: svn://ultimatepp.org/upp/trunk@13440 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2019-06-26 11:02:22 +00:00
parent 541e45cab1
commit d5eff1fa4e
6 changed files with 314 additions and 0 deletions

View file

@ -0,0 +1,92 @@
#include <Core/Core.h>
#include <set>
using namespace Upp;
CONSOLE_APP_MAIN
{
#ifdef _DEBUG
const int v_num = 10000;
#else
const int v_num = 10;
#endif
const int isize = 1000000;
{
Vector<Index<int> > v;
v.SetCount(v_num);
{
RTIMING("FindAdd v_num outer");
for (int j = 0; j < v_num; ++j)
for (int i = 0; i < isize; ++i)
v[j].FindAdd(i);
}
{
RTIMING("UnlinkKey v_num outer");
for (int j = 0; j < v_num; ++j)
for (int i = 0; i < isize; ++i)
v[j].UnlinkKey(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)
for (int j = 0; j < v_num; ++j)
v[j].FindAdd(i);
}
{
RTIMING("UnlinkKey v_num inner");
for (int i = 0; i < isize; ++i)
for (int j = 0; j < v_num; ++j)
v[j].UnlinkKey(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(i);
}
{
RTIMING("erase v_num outer");
for (int j = 0; j < v_num; ++j)
for (int i = 0; i < isize; ++i)
v[j].erase(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)
for (int j = 0; j < v_num; ++j)
v[j].insert(i);
}
{
RTIMING("erase v_num inner");
for (int i = 0; i < isize; ++i)
for (int j = 0; j < v_num; ++j)
v[j].erase(i);
}
delete[] v;
}
}

View file

@ -0,0 +1,9 @@
uses
Core;
file
Index.cpp;
mainconfig
"" = "";

View file

@ -0,0 +1,96 @@
#include <Core/Core.h>
#include <set>
using namespace Upp;
CONSOLE_APP_MAIN
{
#ifdef _DEBUG
const int v_num = 10000;
#else
const int v_num = 100000;
#endif
const int isize = 100;
Vector<int> data;
for(int i = 0; i < isize; i++)
data.Add(Random());
{
Vector<Index<int> > v;
v.SetCount(v_num);
{
RTIMING("FindAdd v_num outer");
for (int j = 0; j < v_num; ++j)
for (int i = 0; i < isize; ++i)
v[j].FindAdd(data[i]);
}
{
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)
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 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]);
}
{
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)
for (int j = 0; j < v_num; ++j)
v[j].insert(i);
}
{
RTIMING("erase v_num inner");
for (int i = 0; i < isize; ++i)
for (int j = 0; j < v_num; ++j)
v[j].erase(i);
}
delete[] v;
}
}

View file

@ -0,0 +1,9 @@
uses
Core;
file
Index.cpp;
mainconfig
"" = "";

View file

@ -0,0 +1,99 @@
#include <Core/Core.h>
#include <set>
using namespace Upp;
CONSOLE_APP_MAIN
{
#ifdef _DEBUG
const int v_num = 10000;
#else
const int v_num = 100000;
#endif
const int isize = 100;
Vector<String> data;
for(int i = 0; i < isize; i++)
data.Add(AsString(Random()));
{
Vector<Index<String> > v;
v.SetCount(v_num);
{
RTIMING("FindAdd v_num outer");
for (int j = 0; j < v_num; ++j)
for (int i = 0; i < isize; ++i)
v[j].FindAdd(data[i]);
}
return;
{
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<String> > v;
v.SetCount(v_num);
{
RTIMING("FindAdd v_num inner");
for (int i = 0; i < isize; ++i)
for (int j = 0; j < v_num; ++j) {
RTIMING("2");
v[j].FindAdd(data[i]);
}
}
{
RTIMING("UnlinkKey v_num inner");
for (int i = 0; i < isize; ++i)
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<String> *v = new std::set<String>[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]);
}
{
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<String> *v = new std::set<String>[v_num];
{
RTIMING("insert v_num inner");
for (int i = 0; i < isize; ++i)
for (int j = 0; j < v_num; ++j)
v[j].insert(data[i]);
}
{
RTIMING("erase v_num inner");
for (int i = 0; i < isize; ++i)
for (int j = 0; j < v_num; ++j)
v[j].erase(data[i]);
}
delete[] v;
}
}

View file

@ -0,0 +1,9 @@
uses
Core;
file
Index.cpp;
mainconfig
"" = "";