221 lines
5.8 KiB
C++
221 lines
5.8 KiB
C++
#include "pip.h"
|
|
|
|
|
|
int main(int argc, char * argv[]) {
|
|
const int repeat = 1000;
|
|
const int no_repeat = 1;
|
|
const int small_cnt = 1000;
|
|
const int big_cnt = 100000;
|
|
PITimeMeasurer tm;
|
|
|
|
|
|
piCout << "map<int, int> insert...";
|
|
tm.reset();
|
|
for (int c=0; c<repeat; ++c) {
|
|
PIMap<int, int> m1;
|
|
for (int i=0; i<small_cnt; ++i) {
|
|
m1.insert(i, i);
|
|
}
|
|
}
|
|
piCout << "map<int, int> insert" << tm.elapsed_m();
|
|
piCout << "map<int, int> insert []...";
|
|
tm.reset();
|
|
for (int c=0; c<repeat; ++c) {
|
|
PIMap<int, int> m1;
|
|
for (int i=0; i<small_cnt; ++i) {
|
|
m1[i] = i;
|
|
}
|
|
}
|
|
piCout << "map<int, int> insert []" << tm.elapsed_m();
|
|
piCout << "map<int, int> insert rnd...";
|
|
tm.reset();
|
|
for (int c=0; c<repeat; ++c) {
|
|
PIMap<int, int> m1;
|
|
for (int i=0; i<small_cnt; ++i) {
|
|
m1.insert(randomi(), i);
|
|
}
|
|
}
|
|
piCout << "map<int, int> insert rnd" << tm.elapsed_m();
|
|
piCout << "map<int, int> insert rnd []...";
|
|
tm.reset();
|
|
for (int c=0; c<repeat; ++c) {
|
|
PIMap<int, int> m1;
|
|
for (int i=0; i<small_cnt; ++i) {
|
|
m1[randomi()] = i;
|
|
}
|
|
}
|
|
piCout << "map<int, int> insert rnd []" << tm.elapsed_m();
|
|
|
|
piCout << "bigmap<int, int> insert...";
|
|
tm.reset();
|
|
for (int c=0; c<no_repeat; ++c) {
|
|
PIMap<int, int> m1;
|
|
for (int i=0; i<big_cnt; ++i) {
|
|
m1.insert(i, i);
|
|
}
|
|
}
|
|
piCout << "bigmap<int, int> insert" << tm.elapsed_m();
|
|
piCout << "bigmap<int, int> insert []...";
|
|
tm.reset();
|
|
for (int c=0; c<no_repeat; ++c) {
|
|
PIMap<int, int> m1;
|
|
for (int i=0; i<big_cnt; ++i) {
|
|
m1[i] = i;
|
|
}
|
|
}
|
|
piCout << "bigmap<int, int> insert []" << tm.elapsed_m();
|
|
piCout << "bigmap<int, int> insert rnd...";
|
|
tm.reset();
|
|
for (int c=0; c<no_repeat; ++c) {
|
|
PIMap<int, int> m1;
|
|
for (int i=0; i<big_cnt; ++i) {
|
|
m1.insert(randomi(), i);
|
|
}
|
|
}
|
|
piCout << "bigmap<int, int> insert rnd" << tm.elapsed_m();
|
|
piCout << "bigmap<int, int> insert rnd []...";
|
|
tm.reset();
|
|
for (int c=0; c<no_repeat; ++c) {
|
|
PIMap<int, int> m1;
|
|
for (int i=0; i<big_cnt; ++i) {
|
|
m1[randomi()] = i;
|
|
}
|
|
}
|
|
piCout << "bigmap<int, int> insert rnd []" << tm.elapsed_m();
|
|
|
|
PIStringList small_sl;
|
|
for (int i=0; i<small_cnt; ++i) small_sl << PIString::fromNumber(randomd())+PIString::fromNumber(i);
|
|
PIStringList big_sl;
|
|
for (int i=0; i<big_cnt; ++i) big_sl << PIString::fromNumber(randomd())+PIString::fromNumber(i);
|
|
piCout << "map<PIString, int> insert...";
|
|
tm.reset();
|
|
for (int c=0; c<repeat; ++c) {
|
|
PIMap<PIString, int> m1;
|
|
for (int i=0; i<small_cnt; ++i) {
|
|
m1.insert(small_sl[i], i);
|
|
}
|
|
}
|
|
piCout << "map<PIString, int> insert" << tm.elapsed_m();
|
|
piCout << "map<PIString, int> insert []...";
|
|
tm.reset();
|
|
for (int c=0; c<repeat; ++c) {
|
|
PIMap<PIString, int> m1;
|
|
for (int i=0; i<small_cnt; ++i) {
|
|
m1[small_sl[i]] = i;
|
|
}
|
|
}
|
|
piCout << "map<PIString, int> insert []" << tm.elapsed_m();
|
|
|
|
piCout << "bigmap<PIString, int> insert...";
|
|
tm.reset();
|
|
for (int c=0; c<no_repeat; ++c) {
|
|
PIMap<PIString, int> m1;
|
|
for (int i=0; i<big_cnt; ++i) {
|
|
m1.insert(big_sl[i], i);
|
|
}
|
|
}
|
|
piCout << "bigmap<PIString, int> insert" << tm.elapsed_m();
|
|
piCout << "bigmap<PIString, int> insert []...";
|
|
tm.reset();
|
|
for (int c=0; c<no_repeat; ++c) {
|
|
PIMap<PIString, int> m1;
|
|
for (int i=0; i<big_cnt; ++i) {
|
|
m1[big_sl[i]] = i;
|
|
}
|
|
}
|
|
piCout << "bigmap<PIString, int> insert []" << tm.elapsed_m();
|
|
|
|
|
|
PIMap<int, int> m1;
|
|
for (int i=0; i<big_cnt; ++i) m1.insert(i,i);
|
|
piCout << "map<int, int> interate...";
|
|
tm.reset();
|
|
for (int c=0; c<repeat; ++c) {
|
|
PIVector<int> v;
|
|
v.reserve(m1.size());
|
|
auto it = m1.makeIterator();
|
|
while (it.next()) v << it.value();
|
|
}
|
|
piCout << "map<int, int> interate" << tm.elapsed_m();
|
|
|
|
PIMap<PIString, int> m2;
|
|
for (int i=0; i<big_cnt; ++i) {
|
|
m2.insert(big_sl[i], i);
|
|
}
|
|
piCout << "map<PIString, int> interate...";
|
|
tm.reset();
|
|
for (int c=0; c<repeat; ++c) {
|
|
PIVector<int> v;
|
|
v.reserve(m2.size());
|
|
auto it = m2.makeIterator();
|
|
while (it.next()) v << it.value();
|
|
}
|
|
piCout << "map<PIString, int> interate" << tm.elapsed_m();
|
|
|
|
|
|
PIByteArray ba;
|
|
ba.resize(1024);
|
|
piCout << "map<int, PIByteArray> insert...";
|
|
tm.reset();
|
|
PIMap<int, PIByteArray> m3;
|
|
for (int i=0; i<big_cnt; ++i) m3.insert(i, ba);
|
|
piCout << "map<int, PIByteArray> insert" << tm.elapsed_m();
|
|
piCout << "map<int, PIByteArray> interate...";
|
|
tm.reset();
|
|
for (int c=0; c<repeat; ++c) {
|
|
PIVector<int> v;
|
|
v.reserve(m3.size());
|
|
auto it = m3.makeIterator();
|
|
while (it.next()) v << it.value().size();
|
|
}
|
|
piCout << "map<int, PIByteArray> interate" << tm.elapsed_m();
|
|
|
|
piCout << "map<PIString, PIByteArray> insert...";
|
|
tm.reset();
|
|
PIMap<PIString, PIByteArray> m4;
|
|
for (int i=0; i<big_cnt; ++i) {
|
|
m4.insert(big_sl[i], ba);
|
|
}
|
|
piCout << "map<PIString, PIByteArray> insert" << tm.elapsed_m();
|
|
piCout << "map<PIString, PIByteArray> interate...";
|
|
tm.reset();
|
|
for (int c=0; c<repeat; ++c) {
|
|
PIVector<int> v;
|
|
v.reserve(m4.size());
|
|
auto it = m4.makeIterator();
|
|
while (it.next()) v << it.value().size();
|
|
}
|
|
piCout << "map<PIString, PIByteArray> interate" << tm.elapsed_m();
|
|
|
|
piCout << "map<int, int> cointains...";
|
|
tm.reset();
|
|
for (int c=0; c<big_cnt; ++c) {
|
|
m1.contains(1023);
|
|
}
|
|
piCout << "map<int, int> contains" << tm.elapsed_m();
|
|
|
|
piCout << "map<int, int> cointains miss...";
|
|
tm.reset();
|
|
for (int c=0; c<big_cnt; ++c) {
|
|
m1.contains(-1);
|
|
}
|
|
piCout << "map<int, int> contains miss" << tm.elapsed_m();
|
|
|
|
piCout << "map<PIString, int> cointains...";
|
|
tm.reset();
|
|
for (int c=0; c<big_cnt; ++c) {
|
|
m2.contains(big_sl[1023]);
|
|
}
|
|
piCout << "map<PIString, int> contains" << tm.elapsed_m();
|
|
|
|
piCout << "map<PIString, int> cointains miss...";
|
|
PIString s = "dfcdsfas";
|
|
tm.reset();
|
|
for (int c=0; c<big_cnt; ++c) {
|
|
m2.contains(s);
|
|
}
|
|
piCout << "map<PIString, int> contains miss" << tm.elapsed_m();
|
|
|
|
return 0;
|
|
}
|