diff options
| author | Tyge Løvset <[email protected]> | 2021-02-22 15:47:31 +0100 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2021-02-22 15:47:31 +0100 |
| commit | 7475268368b2364c87de171335d1a9254b88316f (patch) | |
| tree | 8a82e5a6244fb1337df78d5bfc2666ee1b858654 | |
| parent | d05737c48813a077976da385d8922f3b17400b80 (diff) | |
| download | STC-modified-7475268368b2364c87de171335d1a9254b88316f.tar.gz STC-modified-7475268368b2364c87de171335d1a9254b88316f.zip | |
Minor.
| -rw-r--r-- | benchmarks/cmap_benchmark2.cpp | 16 | ||||
| -rw-r--r-- | benchmarks/csmap_benchmark2.cpp | 18 | ||||
| -rw-r--r-- | docs/cptr_api.md | 2 | ||||
| -rw-r--r-- | stc/clist.h | 4 | ||||
| -rw-r--r-- | stc/cvec.h | 4 |
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*)
@@ -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*)
|
