pimap tests

This commit is contained in:
Бычков Анлрей
2022-05-24 18:40:06 +03:00
parent 12c032392c
commit a18f461ce3

322
main.cpp
View File

@@ -1,235 +1,155 @@
#include "pip.h"
static const char * smallstr = "abcdef";
static const char * bigstr = "zsxdcgfhvbncjdbasljcvavcjadnwnxudvbabdhjlavudvdaljsvclavjlasdhvcjhldsavhjldasvfjlhsavdjhavdjhvfjhldasvfjlasvfhjldasvfhjasvfdjdasfhvjldasvhfjlasvfhjlahsvdfhjfvfvdjalsvfjlhasdvfdjsalvfhhjldasvfdjhaldsvfhjdvsfjhlavfjhlavfladlsvfjlasdvfdhjlavfhjldasvfhjlavfhjldvfhjlalsdvfjlhvasfhjlvchjlavchjladvchjldladvschjlladscvjlhdcahjchjllcahjllvcdjladsvhldbcljadsbcjdhlsachjlvdsa hjlcldajc hljdascbhaldb cldhashd l cajlhs chdsbfhlbfdasdffadsfjkbfkjldsabflhbcldhsbhclabchljadsbchldahsbcladsbhclhabhasbclasbdhl";
PIKbdListener kbd(0, 0, false);
#include <iostream>
#include <codecvt>
using namespace PICoutManipulators;
int main(int argc, char * argv[]) {
/*PIVariant vi;
piCout << vi;
vi = 1;
piCout << vi << vi.toString();
vi = "string";
piCout << vi << vi.toStringList();
vi = PIStringList("2");
piCout << vi << vi.toInt();*/
/*auto cmp = [](const PIConstChars & c0, const PIConstChars & c1){
PICout(DefaultControls) << c0 << "==" << c1 << "->" << (c0 != c1);
};
PIConstChars s;
PICout(DefaultControls | AddQuotes) << s;
s = PIConstChars("str", 2);
PICout(DefaultControls | AddQuotes) << s;
cmp(PIConstChars(), PIConstChars());
cmp(PIConstChars("str"), PIConstChars());
cmp(PIConstChars(), PIConstChars("s_tr"));
cmp(PIConstChars("str1"), PIConstChars("str"));
cmp(PIConstChars("str"), PIConstChars("str2"));
cmp(PIConstChars("str"), PIConstChars("sTr"));
cmp(PIConstChars("str"), PIConstChars("str"));
cmp(PIConstChars("1a"), PIConstChars("1b"));
cmp(PIConstChars("1c"), PIConstChars("1b"));*/
/*PIMap<PIConstChars, int> map;
map[PIConstChars()] = 0;
map[PIConstChars()] = -1;
map["_2"] = 22;
map["1"] = 11;
map["__3"] = 33;
map["10"] = 10;
map[""] = 999;
piCout << map;
piCout << PIConstChars().toString();
piCout << PIConstChars("").toString();
piCout << PIConstChars("str").toString();
PIConstChars s = " 1 2 \t";
piCout << "trim:";
PICout(DefaultControls | AddQuotes) << s.trimmed();
PICout(DefaultControls | AddQuotes) << s;
PICout(DefaultControls | AddQuotes) << s.isEmpty();*/
/*piCout << PIIODevice::availablePrefixes();
auto * d = PIIODevice::createFromFullPath("ser://COM1");
piCout << "";
piCout << d;
d->dump();
d = PIIODevice::createFromFullPath("eth://udp:127.0.0.1:5000");
piCout << "";
piCout << d;
d->dump();*/
piCout << "";
dumpApplication();
return 0;
auto rstr = PIString::fromUTF8("ascii русский!");
/*for (PIChar c: rstr)
std::wcout << c.toWChar();
std::wcout << std::endl;*/
piCout << PIChar::fromUTF8("");
piCout << PICoutManipulators::Hex << (int)PIChar::fromUTF8("").toWChar();
piCout << rstr;
/*char rs[] = "й";
piCout << PIString(PIChar::fromUTF8(rs));
std::cout << sizeof(rs) << " chars ";
for (int i = 0; i < sizeof(rs); ++i)
std::cout << "'" << (char)(rs[i]) << "' " << (int)(uchar)(rs[i]);
std::cout << std::endl;
CONNECTL(&kbd, keyPressed, ([](PIKbdListener::KeyEvent k, void*){
;
piCout << k.key << PIChar((ushort)k.key);
}));
kbd.start();
WAIT_FOR_EXIT;*/
//return 0;
static const int cc = 1000000;
const int repeat = 1000;
const int no_repeat = 1;
const int small_cnt = 1000;
const int big_cnt = 1000000;
PITimeMeasurer tm;
int l = 0;
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s(smallstr);
l = s.size();
}
piCout << l << "PIString()" << tm.elapsed_m();
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s = smallstr;
l = s.size();
}
piCout << l << "PIString =" << tm.elapsed_m();
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s = PIStringAscii(smallstr);
l = s.size();
}
piCout << l << "PIStringAscii" << tm.elapsed_m();
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s;
s += smallstr;
s += "1";
l = s.size();
}
piCout << l << "PIString + PIString" << tm.elapsed_m();
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s = PIStringAscii(smallstr) + "1";
l = s.size();
}
piCout << l << "PIStringAscii + PIString" << tm.elapsed_m();
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s = PIString::fromUTF8(smallstr);
l = s.size();
}
piCout << l << "PIString::fromUTF8" << tm.elapsed_m();
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s = PIString::fromSystem(smallstr);
l = s.size();
}
piCout << l << "PIString::fromSystem" << tm.elapsed_m();
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s = PIString::fromAscii(smallstr);
l = s.size();
}
piCout << l << "PIString::fromAscii" << tm.elapsed_m();
piCout << "map<int, int> insert...";
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s(bigstr);
l = s.size();
for (int c=0; c<repeat; ++c) {
PIMap<int, int> m1;
for (int i=0; i<small_cnt; ++i) {
m1.insert(i, i);
}
}
piCout << l << "PIString()" << tm.elapsed_m();
piCout << "map<int, int> insert" << tm.elapsed_m();
piCout << "map<int, int> insert []...";
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s = bigstr;
l = s.size();
for (int c=0; c<repeat; ++c) {
PIMap<int, int> m1;
for (int i=0; i<small_cnt; ++i) {
m1[i] = i;
}
}
piCout << l << "PIString =" << tm.elapsed_m();
piCout << "map<int, int> insert []" << tm.elapsed_m();
piCout << "map<int, int> insert rnd...";
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s = PIStringAscii(bigstr);
l = s.size();
for (int c=0; c<repeat; ++c) {
PIMap<int, int> m1;
for (int i=0; i<small_cnt; ++i) {
m1.insert(randomi(), i);
}
}
piCout << l << "PIStringAscii" << tm.elapsed_m();
piCout << "map<int, int> insert rnd" << tm.elapsed_m();
piCout << "map<int, int> insert rnd []...";
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s;
s += bigstr;
s += "1";
l = s.size();
for (int c=0; c<repeat; ++c) {
PIMap<int, int> m1;
for (int i=0; i<small_cnt; ++i) {
m1[randomi()] = i;
}
}
piCout << l << "PIString + PIString" << tm.elapsed_m();
piCout << "map<int, int> insert rnd []" << tm.elapsed_m();
piCout << "bigmap<int, int> insert...";
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s = PIStringAscii(bigstr) + "1";
l = s.size();
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 << l << "PIStringAscii + PIString" << tm.elapsed_m();
piCout << "bigmap<int, int> insert" << tm.elapsed_m();
piCout << "bigmap<int, int> insert []...";
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s = PIString::fromUTF8(bigstr);
l = s.size();
for (int c=0; c<no_repeat; ++c) {
PIMap<int, int> m1;
for (int i=0; i<big_cnt; ++i) {
m1[i] = i;
}
}
piCout << l << "PIString::fromUTF8" << tm.elapsed_m();
piCout << "bigmap<int, int> insert []" << tm.elapsed_m();
piCout << "bigmap<int, int> insert rnd...";
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s = PIString::fromSystem(bigstr);
l = s.size();
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 << l << "PIString::fromSystem" << tm.elapsed_m();
piCout << "bigmap<int, int> insert rnd" << tm.elapsed_m();
piCout << "bigmap<int, int> insert rnd []...";
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s = PIString::fromAscii(bigstr);
l = s.size();
for (int c=0; c<no_repeat; ++c) {
PIMap<int, int> m1;
for (int i=0; i<big_cnt; ++i) {
m1[randomi()] = i;
}
}
piCout << l << "PIString::fromAscii" << tm.elapsed_m();
PIString is = PIString::fromAscii(bigstr);
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());
PIStringList big_sl;
for (int i=0; i<big_cnt; ++i) big_sl << PIString::fromNumber(randomd());
piCout << "map<PIString, int> insert...";
tm.reset();
for(int i=0; i<cc; ++i) {
l = is.toByteArray().size();
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 << l << "PIString::toByteArray" << tm.elapsed_m();
PIByteArray ba = is.toByteArray();
piCout << "map<PIString, int> insert" << tm.elapsed_m();
piCout << "map<PIString, int> insert []...";
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s = PIString::fromUTF8(ba);
l = s.size();
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 << l << "PIString::fromByteArray" << tm.elapsed_m();
piCout << "map<PIString, int> insert []" << tm.elapsed_m();
piCout << "bigmap<PIString, int> insert...";
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s = PIString::fromNumber(ba.size());
l = s.size();
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 << l << "PIString::fromNumber" << tm.elapsed_m();
piCout << "bigmap<PIString, int> insert" << tm.elapsed_m();
piCout << "bigmap<PIString, int> insert []...";
tm.reset();
for(int i=0; i<cc; ++i) {
PIString s = is;
l = s.size();
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 << l << "PIString::assign empty" << tm.elapsed_m();
PIString is2 = PIString::fromUTF8(ba);
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 i=0; i<cc; ++i) {
PIString s = is;
l = s.size();
s = is2;
l += s.size();
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 << l << "PIString::assign non empty" << tm.elapsed_m();
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();
return 0;
}