PImap test

This commit is contained in:
2021-06-11 16:05:48 +03:00
parent 6af21622a1
commit ef80a72e38

179
main.cpp
View File

@@ -1,39 +1,150 @@
#include "pip.h" #include "pip.h"
enum Header {
hInt = 1,
hString,
hVoid
};
class MyObj: public PIObject {
PIOBJECT(MyObj);
public:
EVENT_HANDLER1(void, methodI, int, i) {piCout << "methodI" << i;}
EVENT_HANDLER1(void, methodS, PIString, s) {piCout << "methodS" << s;}
EVENT_HANDLER0(void, method) {piCout << "method";}
};
int main() { int main() {
MyObj o; const int iters = 10;
PIParseHelper<int> parser(&o); const int sz = 100000000;
{
parser.assign(hInt, o.HANDLER(methodI)); piCout << "PIVector push back";
parser.assign(hString, o.HANDLER(methodS)); PIVector<int> v;
parser.assign(hVoid, o.HANDLER(method)); //v.reserve(sz);
for (int n=0; n<iters; ++n) {
PIByteArray data; PITimeMeasurer tm;
for (int i=0; i<sz; ++i) {
data.clear(); v.push_back(i);
data << 11; }
parser.parse(hInt, data); piCout << tm.elapsed_m();
// methodI 11 v.clear();
}
data.clear(); }
data << PIString("text"); // piCout << "\n";
parser.parse(hString, data); // {
// methodS text // piCout << "PIVector push front";
// PIVector<int> v;
data.clear(); // v.reserve(sz);
parser.parse(hVoid, data); // for (int n=0; n<iters; ++n) {
// method // PITimeMeasurer tm;
// for (int i=0; i<sz; ++i) {
// v.push_front(i);
// }
// piCout << tm.elapsed_m();
// v.clear();
// }
// }
// piCout << "\n";
// {
// piCout << "PIVector insert center";
// PIVector<int> v;
// //v.reserve(sz);
// for (int n=0; n<iters; ++n) {
// PITimeMeasurer tm;
// for (int i=0; i<sz; ++i) {
// v.insert(v.size()/2, i);
// }
// piCout << tm.elapsed_m();
// v.clear();
// }
// }
piCout << "\n";
{
piCout << "PIDeque push back";
PIDeque<int> v;
//v.reserve(sz);
for (int n=0; n<iters; ++n) {
PITimeMeasurer tm;
for (int i=0; i<sz; ++i) {
v.push_back(i);
}
piCout << tm.elapsed_m();
v.clear();
}
}
piCout << "\n";
{
piCout << "PIDeque push front";
PIDeque<int> v;
//v.reserve(sz);
for (int n=0; n<iters; ++n) {
PITimeMeasurer tm;
for (int i=0; i<sz; ++i) {
v.push_front(i);
}
piCout << tm.elapsed_m();
v.clear();
}
}
// piCout << "\n";
// {
// piCout << "PIDeque insert center";
// PIDeque<int> v;
// //v.reserve(sz);
// for (int n=0; n<iters; ++n) {
// PITimeMeasurer tm;
// for (int i=0; i<sz; ++i) {
// v.insert(v.size()/2, i);
// }
// piCout << tm.elapsed_m();
// v.clear();
// }
// }
piCout << "\n";
{
piCout << "Multi insert";
PIVector<int> v;
PIDeque<int> v2;
//v.reserve(sz);
for (int n=0; n<iters; ++n) {
PITimeMeasurer tm;
for (int i=0; i<sz; ++i) {
v << i;
v2 << v[i];
}
piCout << tm.elapsed_m();
v.clear();
}
}
piCout << "\n";
{
piCout << "Multi insert 2";
PIVector<int> v;
PIDeque<PIPair<int,int>> v2;
//v.reserve(sz);
for (int n=0; n<iters; ++n) {
PITimeMeasurer tm;
for (int i=0; i<sz; ++i) v << i;
for (int i=0; i<sz; ++i) v2 << PIPair<int,int>(i, v[i]);
piCout << tm.elapsed_m();
v.clear();
v2.clear();
}
}
// piCout << "\n";
// {
// piCout << "PIMap insert";
// PIMap<llong, int> v;
// //v.reserve(sz);
// for (int n=0; n<iters; ++n) {
// PITimeMeasurer tm;
// for (int i=0; i<sz; ++i) {
// v.insert(i, i);
// }
// piCout << tm.elapsed_m();
// v.clear();
// }
// }
// piCout << "\n";
// {
// piCout << "PIMap insert 2";
// PIMap<llong, int> v;
// //v.reserve(sz);
// for (int n=0; n<iters; ++n) {
// PITimeMeasurer tm;
// for (int i=0; i<sz; ++i) {
// v[i] = i;
// }
// piCout << tm.elapsed_m();
// v.clear();
// }
// }
return 0;
} }