summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2021-02-22 15:47:31 +0100
committerTyge Løvset <[email protected]>2021-02-22 15:47:31 +0100
commit7475268368b2364c87de171335d1a9254b88316f (patch)
tree8a82e5a6244fb1337df78d5bfc2666ee1b858654
parentd05737c48813a077976da385d8922f3b17400b80 (diff)
downloadSTC-modified-7475268368b2364c87de171335d1a9254b88316f.tar.gz
STC-modified-7475268368b2364c87de171335d1a9254b88316f.zip
Minor.
-rw-r--r--benchmarks/cmap_benchmark2.cpp16
-rw-r--r--benchmarks/csmap_benchmark2.cpp18
-rw-r--r--docs/cptr_api.md2
-rw-r--r--stc/clist.h4
-rw-r--r--stc/cvec.h4
5 files changed, 18 insertions, 26 deletions
diff --git a/benchmarks/cmap_benchmark2.cpp b/benchmarks/cmap_benchmark2.cpp
index 158775d5..e16d4f41 100644
--- a/benchmarks/cmap_benchmark2.cpp
+++ b/benchmarks/cmap_benchmark2.cpp
@@ -214,13 +214,9 @@ static void ins_and_access_s(picobench::state& s)
picobench::scope scope(s);
c_forrange (s.iterations()) {
randomize(&str[0], str.size());
- map[str] = str;
+ map.emplace(str, str);
randomize(&str[0], str.size());
- auto it = map.find(str);
- if (it != map.end()) {
- ++result;
- map.erase(it);
- }
+ result += map.erase(str);
}
s.set_result(result + map.size());
}
@@ -236,13 +232,9 @@ static void ins_and_access_cmap_s(picobench::state& s)
picobench::scope scope(s);
c_forrange (s.iterations()) {
randomize(str.str, cstr_size(str));
- cmap_str_emplace_or_assign(&map, str.str, str.str);
+ cmap_str_emplace(&map, str.str, str.str);
randomize(str.str, cstr_size(str));
- cmap_str_iter_t it = cmap_str_find(&map, str.str);
- if (it.ref) {
- ++result;
- cmap_str_erase_at(&map, it);
- }
+ result += cmap_str_erase(&map, str.str);
}
s.set_result(result + cmap_str_size(map));
cstr_del(&str);
diff --git a/benchmarks/csmap_benchmark2.cpp b/benchmarks/csmap_benchmark2.cpp
index 02d25c51..19f29727 100644
--- a/benchmarks/csmap_benchmark2.cpp
+++ b/benchmarks/csmap_benchmark2.cpp
@@ -9,7 +9,7 @@
#define PICOBENCH_IMPLEMENT_WITH_MAIN
#include "picobench.hpp"
-enum {N1 = 2000000, S1 = 1};
+enum {N1 = 1000000, S1 = 1};
uint64_t seed = time(NULL); // 18237129837891;
using omap_i = std::map<int, int>;
@@ -18,7 +18,7 @@ using omap_s = std::map<std::string, std::string>;
using_csmap(i, int, int);
using_csmap(x, uint64_t, uint64_t);
-using_csmap_strkey(s, cstr, cstr_del, cstr_clone);
+using_csmap_str();
PICOBENCH_SUITE("Map1");
@@ -201,7 +201,7 @@ static void ins_and_access_s(picobench::state& s)
picobench::scope scope(s);
c_forrange (s.iterations()) {
randomize(&str[0], str.size());
- map[str] = str;
+ map.emplace(str, str);
randomize(&str[0], str.size());
auto it = map.find(str);
if (it != map.end()) {
@@ -216,23 +216,23 @@ static void ins_and_access_csmap_s(picobench::state& s)
{
cstr str = cstr_with_size(s.arg(), 'x');
size_t result = 0;
- csmap_s map = csmap_s_init();
+ csmap_str map = csmap_str_init();
stc64_srandom(seed);
picobench::scope scope(s);
c_forrange (s.iterations()) {
randomize(str.str, cstr_size(str));
- csmap_s_emplace_or_assign(&map, str.str, cstr_clone(str));
+ csmap_str_emplace(&map, str.str, str.str);
randomize(str.str, cstr_size(str));
- csmap_s_iter_t it = csmap_s_find(&map, str.str);
+ csmap_str_iter_t it = csmap_str_find(&map, str.str);
if (it.ref) {
++result;
- csmap_s_erase(&map, it.ref->first.str);
+ csmap_str_erase(&map, it.ref->first.str);
}
}
- s.set_result(result + csmap_s_size(map));
+ s.set_result(result + csmap_str_size(map));
cstr_del(&str);
- csmap_s_del(&map);
+ csmap_str_del(&map);
}
#define P samples(S1).iterations({N1/5, N1/5, N1/5, N1/10, N1/40}).args({13, 7, 8, 100, 1000})
diff --git a/docs/cptr_api.md b/docs/cptr_api.md
index 6ddca701..678dfb6b 100644
--- a/docs/cptr_api.md
+++ b/docs/cptr_api.md
@@ -85,7 +85,7 @@ void Person_del(Person* p) {
}
// declare managed pointer and cvec with pointers
using_cptr(pe, Person, c_no_compare, Person_del);
-using_cvec(pe, Person*, c_no_compare, cptr_pe_del);
+using_cvec(pe, Person*, c_no_compare, cptr_pe_del, c_no_clone);
int main() {
cvec_pe vec = cvec_pe_init();
diff --git a/stc/clist.h b/stc/clist.h
index 95dee6e7..03b13a8c 100644
--- a/stc/clist.h
+++ b/stc/clist.h
@@ -60,8 +60,8 @@
using_clist_3(X, Value, c_default_compare)
#define using_clist_3(X, Value, valueCompare) \
using_clist_7(X, Value, valueCompare, c_plain_del, c_plain_fromraw, c_plain_toraw, Value)
-#define using_clist_5(X, Value, valueCompare, valueDel, valueFromRaw) \
- using_clist_7(X, Value, valueCompare, valueDel, valueFromRaw, c_plain_toraw, Value)
+#define using_clist_5(X, Value, valueCompare, valueDel, valueClone) \
+ using_clist_7(X, Value, valueCompare, valueDel, valueClone, c_plain_toraw, Value)
#define using_clist_str() \
using_clist_7(str, cstr_t, cstr_compare_raw, cstr_del, cstr_from, cstr_c_str, const char*)
diff --git a/stc/cvec.h b/stc/cvec.h
index 1fa54d30..71a6b289 100644
--- a/stc/cvec.h
+++ b/stc/cvec.h
@@ -32,8 +32,8 @@
using_cvec_3(X, Value, c_default_compare)
#define using_cvec_3(X, Value, valueCompare) \
using_cvec_7(X, Value, valueCompare, c_plain_del, c_plain_fromraw, c_plain_toraw, Value)
-#define using_cvec_5(X, Value, valueCompare, valueDel, valueFromRaw) \
- using_cvec_7(X, Value, valueCompare, valueDel, valueFromRaw, c_plain_toraw, Value)
+#define using_cvec_5(X, Value, valueCompare, valueDel, valueClone) \
+ using_cvec_7(X, Value, valueCompare, valueDel, valueClone, c_plain_toraw, Value)
#define using_cvec_str() \
using_cvec_7(str, cstr_t, cstr_compare_raw, cstr_del, cstr_from, cstr_c_str, const char*)