fix and simplify turbolist size calculation
This commit is contained in:
parent
96aac6cc37
commit
06d0b329ba
@ -95,7 +95,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline uint32_t size() noexcept {
|
inline uint32_t size() noexcept {
|
||||||
return mid + (capacity - end - 1);
|
return end;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
17
main.cpp
17
main.cpp
@ -33,6 +33,7 @@ int main() {
|
|||||||
{
|
{
|
||||||
auto before_vector = ms_now();
|
auto before_vector = ms_now();
|
||||||
std::vector<int> vec;
|
std::vector<int> vec;
|
||||||
|
/*
|
||||||
std::vector<int> vec1;
|
std::vector<int> vec1;
|
||||||
std::vector<int> vec2;
|
std::vector<int> vec2;
|
||||||
std::vector<int> vec3;
|
std::vector<int> vec3;
|
||||||
@ -42,8 +43,10 @@ int main() {
|
|||||||
std::vector<int> vec7;
|
std::vector<int> vec7;
|
||||||
std::vector<int> vec8;
|
std::vector<int> vec8;
|
||||||
std::vector<int> vec9;
|
std::vector<int> vec9;
|
||||||
|
*/
|
||||||
for(int i = 0; i < N; ++i) {
|
for(int i = 0; i < N; ++i) {
|
||||||
vec.push_back(i);
|
vec.push_back(i);
|
||||||
|
/*
|
||||||
vec1.push_back(i);
|
vec1.push_back(i);
|
||||||
vec2.push_back(i);
|
vec2.push_back(i);
|
||||||
vec3.push_back(i);
|
vec3.push_back(i);
|
||||||
@ -53,6 +56,7 @@ int main() {
|
|||||||
vec7.push_back(i);
|
vec7.push_back(i);
|
||||||
vec8.push_back(i);
|
vec8.push_back(i);
|
||||||
vec9.push_back(i);
|
vec9.push_back(i);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
auto after_vector = ms_now();
|
auto after_vector = ms_now();
|
||||||
printt("vector", before_vector, after_vector);
|
printt("vector", before_vector, after_vector);
|
||||||
@ -63,6 +67,7 @@ int main() {
|
|||||||
{
|
{
|
||||||
auto before_TurboList = ms_now();
|
auto before_TurboList = ms_now();
|
||||||
TurboList<int> list;
|
TurboList<int> list;
|
||||||
|
/*
|
||||||
TurboList<int> list1;
|
TurboList<int> list1;
|
||||||
TurboList<int> list2;
|
TurboList<int> list2;
|
||||||
TurboList<int> list3;
|
TurboList<int> list3;
|
||||||
@ -72,8 +77,10 @@ int main() {
|
|||||||
TurboList<int> list7;
|
TurboList<int> list7;
|
||||||
TurboList<int> list8;
|
TurboList<int> list8;
|
||||||
TurboList<int> list9;
|
TurboList<int> list9;
|
||||||
|
*/
|
||||||
for(int i = 0; i < N; ++i) {
|
for(int i = 0; i < N; ++i) {
|
||||||
list.insert(i);
|
list.insert(i);
|
||||||
|
/*
|
||||||
list1.insert(i);
|
list1.insert(i);
|
||||||
list2.insert(i);
|
list2.insert(i);
|
||||||
list3.insert(i);
|
list3.insert(i);
|
||||||
@ -83,9 +90,11 @@ int main() {
|
|||||||
list7.insert(i);
|
list7.insert(i);
|
||||||
list8.insert(i);
|
list8.insert(i);
|
||||||
list9.insert(i);
|
list9.insert(i);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
auto after_TurboList = ms_now();
|
auto after_TurboList = ms_now();
|
||||||
printt("TurboList", before_TurboList, after_TurboList);
|
printt("TurboList", before_TurboList, after_TurboList);
|
||||||
|
assert(list.size() == N);
|
||||||
|
|
||||||
#ifdef PRINT_DBG
|
#ifdef PRINT_DBG
|
||||||
for(int i = 0; i < list.size(); ++i) {
|
for(int i = 0; i < list.size(); ++i) {
|
||||||
@ -96,7 +105,6 @@ int main() {
|
|||||||
|
|
||||||
// C turbolist //
|
// C turbolist //
|
||||||
|
|
||||||
/*
|
|
||||||
auto before_cturbolist = ms_now();
|
auto before_cturbolist = ms_now();
|
||||||
turbolist clist = turbolist_create();
|
turbolist clist = turbolist_create();
|
||||||
for(int i = 0; i < N; ++i) {
|
for(int i = 0; i < N; ++i) {
|
||||||
@ -104,6 +112,7 @@ int main() {
|
|||||||
}
|
}
|
||||||
auto after_cturbolist = ms_now();
|
auto after_cturbolist = ms_now();
|
||||||
printt("C turbolist", before_cturbolist, after_cturbolist);
|
printt("C turbolist", before_cturbolist, after_cturbolist);
|
||||||
|
assert(turbolist_size(&clist) == N);
|
||||||
|
|
||||||
#ifdef PRINT_DBG
|
#ifdef PRINT_DBG
|
||||||
for(int i = 0; i < turbolist_size(clist); ++i) {
|
for(int i = 0; i < turbolist_size(clist); ++i) {
|
||||||
@ -135,6 +144,7 @@ int main() {
|
|||||||
}
|
}
|
||||||
auto after_carenaturbolist = ms_now();
|
auto after_carenaturbolist = ms_now();
|
||||||
printt("C arena turbolist", before_carenaturbolist, after_carenaturbolist);
|
printt("C arena turbolist", before_carenaturbolist, after_carenaturbolist);
|
||||||
|
assert(turbolist_size(&clist) == N);
|
||||||
|
|
||||||
#ifdef PRINT_DBG
|
#ifdef PRINT_DBG
|
||||||
for(int i = 0; i < turbolist_size(clist); ++i) {
|
for(int i = 0; i < turbolist_size(clist); ++i) {
|
||||||
@ -144,12 +154,12 @@ int main() {
|
|||||||
|
|
||||||
turbolist_delete(&clist);
|
turbolist_delete(&clist);
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
// C ARENA //
|
// C ARENA //
|
||||||
|
|
||||||
auto before_arena = ms_now();
|
auto before_arena = ms_now();
|
||||||
arena a = newarena((ptrdiff_t)1 << 33);
|
arena a = newarena((ptrdiff_t)1 << 33);
|
||||||
|
/*
|
||||||
arena a1 = newarena((ptrdiff_t)1 << 33);
|
arena a1 = newarena((ptrdiff_t)1 << 33);
|
||||||
arena a2 = newarena((ptrdiff_t)1 << 33);
|
arena a2 = newarena((ptrdiff_t)1 << 33);
|
||||||
arena a3 = newarena((ptrdiff_t)1 << 33);
|
arena a3 = newarena((ptrdiff_t)1 << 33);
|
||||||
@ -159,12 +169,14 @@ int main() {
|
|||||||
arena a7 = newarena((ptrdiff_t)1 << 33);
|
arena a7 = newarena((ptrdiff_t)1 << 33);
|
||||||
arena a8 = newarena((ptrdiff_t)1 << 33);
|
arena a8 = newarena((ptrdiff_t)1 << 33);
|
||||||
arena a9 = newarena((ptrdiff_t)1 << 33);
|
arena a9 = newarena((ptrdiff_t)1 << 33);
|
||||||
|
*/
|
||||||
// steps at first real elem, there should be N from here!
|
// steps at first real elem, there should be N from here!
|
||||||
int *arenalist = ((int*)alloc(&a, sizeof(int), sizeof(int), 1)) + 1;
|
int *arenalist = ((int*)alloc(&a, sizeof(int), sizeof(int), 1)) + 1;
|
||||||
for(int i = 0; i < N; ++i) {
|
for(int i = 0; i < N; ++i) {
|
||||||
int *value = (int*)alloc(&a, sizeof(int), sizeof(int), 1);
|
int *value = (int*)alloc(&a, sizeof(int), sizeof(int), 1);
|
||||||
*value = i;
|
*value = i;
|
||||||
|
|
||||||
|
/*
|
||||||
value = (int*)alloc(&a1, sizeof(int), sizeof(int), 1);
|
value = (int*)alloc(&a1, sizeof(int), sizeof(int), 1);
|
||||||
*value = i;
|
*value = i;
|
||||||
value = (int*)alloc(&a2, sizeof(int), sizeof(int), 1);
|
value = (int*)alloc(&a2, sizeof(int), sizeof(int), 1);
|
||||||
@ -183,6 +195,7 @@ int main() {
|
|||||||
*value = i;
|
*value = i;
|
||||||
value = (int*)alloc(&a9, sizeof(int), sizeof(int), 1);
|
value = (int*)alloc(&a9, sizeof(int), sizeof(int), 1);
|
||||||
*value = i;
|
*value = i;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
auto after_arena = ms_now();
|
auto after_arena = ms_now();
|
||||||
printt("C arena", before_arena, after_arena);
|
printt("C arena", before_arena, after_arena);
|
||||||
|
@ -94,7 +94,7 @@ static inline void turbolist_insert(turbolist *tl, int elem) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline uint32_t turbolist_size(turbolist *tl) {
|
static inline uint32_t turbolist_size(turbolist *tl) {
|
||||||
return tl->mid + (tl->capacity - tl->end - 1);
|
return tl->end;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* TURBO_LIST_H */
|
#endif /* TURBO_LIST_H */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user