PIDeque important performance fix
This commit is contained in:
158
main.cpp
158
main.cpp
@@ -1,22 +1,26 @@
|
||||
#include "pip.h"
|
||||
|
||||
|
||||
|
||||
|
||||
int main() {
|
||||
const int iters = 10;
|
||||
const int sz = 100000000;
|
||||
{
|
||||
piCout << "PIVector push back";
|
||||
PIVector<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();
|
||||
}
|
||||
}
|
||||
const int iters = 4;
|
||||
const int sz = 10000000;
|
||||
|
||||
|
||||
// {
|
||||
// piCout << "PIVector push back";
|
||||
// PIVector<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.capacity();
|
||||
// v.clear();
|
||||
// }
|
||||
// }
|
||||
// piCout << "\n";
|
||||
// {
|
||||
// piCout << "PIVector push front";
|
||||
@@ -27,7 +31,7 @@ int main() {
|
||||
// for (int i=0; i<sz; ++i) {
|
||||
// v.push_front(i);
|
||||
// }
|
||||
// piCout << tm.elapsed_m();
|
||||
// piCout << tm.elapsed_m() << v.capacity();
|
||||
// v.clear();
|
||||
// }
|
||||
// }
|
||||
@@ -45,34 +49,36 @@ int main() {
|
||||
// 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 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.capacity();
|
||||
// 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.capacity();
|
||||
// v.clear();
|
||||
// }
|
||||
// }
|
||||
// piCout << "\n";
|
||||
// {
|
||||
// piCout << "PIDeque insert center";
|
||||
@@ -83,21 +89,25 @@ int main() {
|
||||
// for (int i=0; i<sz; ++i) {
|
||||
// v.insert(v.size()/2, i);
|
||||
// }
|
||||
// piCout << tm.elapsed_m();
|
||||
// piCout << tm.elapsed_m() << v.capacity();
|
||||
// v.clear();
|
||||
// }
|
||||
// }
|
||||
|
||||
PIVector<llong> ind;
|
||||
for (int i=0; i<sz; ++i) {
|
||||
ind << randomi();
|
||||
}
|
||||
|
||||
piCout << "\n";
|
||||
{
|
||||
piCout << "Multi insert";
|
||||
PIVector<int> v;
|
||||
PIDeque<int> v2;
|
||||
piCout << "PIMap insert back";
|
||||
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;
|
||||
v2 << v[i];
|
||||
v[i] = i;
|
||||
}
|
||||
piCout << tm.elapsed_m();
|
||||
v.clear();
|
||||
@@ -105,28 +115,45 @@ int main() {
|
||||
}
|
||||
piCout << "\n";
|
||||
{
|
||||
piCout << "Multi insert 2";
|
||||
PIVector<int> v;
|
||||
PIDeque<PIPair<int,int>> v2;
|
||||
piCout << "PIMap insert front";
|
||||
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;
|
||||
for (int i=0; i<sz; ++i) v2 << PIPair<int,int>(i, v[i]);
|
||||
for (int i=0; i<sz; ++i) {
|
||||
v[sz - i] = i;
|
||||
}
|
||||
piCout << tm.elapsed_m();
|
||||
v.clear();
|
||||
v2.clear();
|
||||
}
|
||||
}
|
||||
piCout << "\n";
|
||||
{
|
||||
piCout << "PIMap insert random";
|
||||
PIMap<llong, int> v;
|
||||
//v.reserve(sz);
|
||||
for (int n=0; n<iters; ++n) {
|
||||
PITimeMeasurer tm;
|
||||
for (int i=0; i<sz; ++i) {
|
||||
v[ind[i]] = i;
|
||||
}
|
||||
piCout << tm.elapsed_m();
|
||||
v.clear();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// piCout << "\n";
|
||||
// {
|
||||
// piCout << "PIMap insert";
|
||||
// PIMap<llong, int> v;
|
||||
// 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.insert(i, i);
|
||||
// v << i;
|
||||
// v2 << v[i];
|
||||
// }
|
||||
// piCout << tm.elapsed_m();
|
||||
// v.clear();
|
||||
@@ -134,17 +161,20 @@ int main() {
|
||||
// }
|
||||
// piCout << "\n";
|
||||
// {
|
||||
// piCout << "PIMap insert 2";
|
||||
// PIMap<llong, int> v;
|
||||
// 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] = i;
|
||||
// }
|
||||
// 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();
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user