This commit is contained in:
blueloveTH 2023-02-23 19:49:25 +08:00
parent 49a52f000d
commit b2b56316b2
2 changed files with 26 additions and 26 deletions

View File

@ -170,30 +170,6 @@ namespace pkpy{
_size--;
}
void print_stats(){
std::map<StrName, uint32_t> stats;
for(uint32_t i=0; i<_capacity; i++){
if(_a[i].empty()) continue;
stats[_a[i].first] = 1;
}
for(auto [key, _]: stats){
bool ok = false; uint32_t i;
i = _hash(key, _capacity, _hash_seed);
while(!_a[i].empty()) {
if(_a[i].first == (key)) { ok = true; break; }
i = (i + 1) % _capacity;
stats[key]++;
}
}
for(uint32_t i=0; i<_capacity; i++){
if(_a[i].empty()) {
std::cout << i << ": <NULL>" << std::endl;
continue;
}
std::cout << i << ": <" << _a[i].first.str() << ", " << stats[_a[i].first] << '>' << std::endl;
}
}
std::vector<NameDictNode> items() const {
std::vector<NameDictNode> v;
for(uint32_t i=0; i<_capacity; i++){
@ -212,6 +188,30 @@ namespace pkpy{
return v;
}
#undef HASH_PROBE
// void print_stats(){
// std::map<StrName, uint32_t> stats;
// for(uint32_t i=0; i<_capacity; i++){
// if(_a[i].empty()) continue;
// stats[_a[i].first] = 1;
// }
// for(auto [key, _]: stats){
// bool ok = false; uint32_t i;
// i = _hash(key, _capacity, _hash_seed);
// while(!_a[i].empty()) {
// if(_a[i].first == (key)) { ok = true; break; }
// i = (i + 1) % _capacity;
// stats[key]++;
// }
// }
// for(uint32_t i=0; i<_capacity; i++){
// if(_a[i].empty()) {
// std::cout << i << ": <NULL>" << std::endl;
// continue;
// }
// std::cout << i << ": <" << _a[i].first.str() << ", " << stats[_a[i].first] << '>' << std::endl;
// }
// }
};
} // namespace pkpy

View File

@ -99,9 +99,9 @@ struct Py_ : PyObject {
inline void _init() noexcept {
if constexpr (std::is_same_v<T, Type> || std::is_same_v<T, DummyModule>) {
_attr = new pkpy::NameDict(4, kTypeAttrLoadFactor);
_attr = new pkpy::NameDict(17, kTypeAttrLoadFactor);
}else if constexpr(std::is_same_v<T, DummyInstance>){
_attr = new pkpy::NameDict(4, kInstAttrLoadFactor);
_attr = new pkpy::NameDict(5, kInstAttrLoadFactor);
}else{
_attr = nullptr;
}