@@ -68,6 +68,10 @@ class DbCache final : public Db
6868 AccountsCache accounts_{10'000'000 };
6969 StorageCache storage_{10'000'000 };
7070 Proposals proposals_;
71+ size_t account_touched_{0 };
72+ size_t account_changed_{0 };
73+ size_t storage_touched_{0 };
74+ size_t storage_changed_{0 };
7175
7276public:
7377 DbCache (Db &db)
@@ -216,26 +220,46 @@ class DbCache final : public Db
216220 virtual std::string print_stats () override
217221 {
218222 return db_.print_stats () + " ,ac=" + accounts_.print_stats () +
219- " ,sc=" + storage_.print_stats ();
223+ " ,sc=" + storage_.print_stats () + print_read_write_stats () ;
220224 }
221225
222226 virtual uint64_t get_block_number () const override
223227 {
224228 return db_.get_block_number ();
225229 }
226230
231+ std::string print_read_write_stats () const
232+ {
233+ return " ,at=" + std::to_string (account_touched_) +
234+ " ,am=" + std::to_string (account_changed_) +
235+ " ,st=" + std::to_string (storage_touched_) +
236+ " ,sm=" + std::to_string (storage_changed_);
237+ }
238+
227239private:
228240 void insert_in_lru_caches (StateDeltas const &state_deltas)
229241 {
242+ account_touched_ = 0 ;
243+ account_changed_ = 0 ;
244+ storage_touched_ = 0 ;
245+ storage_changed_ = 0 ;
230246 for (auto it = state_deltas.cbegin (); it != state_deltas.cend (); ++it) {
231247 auto const &address = it->first ;
232248 auto const &account_delta = it->second .account ;
233249 accounts_.insert (address, account_delta.second );
234250 auto const &storage = it->second .storage ;
235251 auto const &account = account_delta.second ;
236252 if (account.has_value ()) {
253+ ++account_touched_;
254+ if (account_delta.first != account_delta.second ) {
255+ ++account_changed_;
256+ }
237257 for (auto it2 = storage.cbegin (); it2 != storage.cend ();
238258 ++it2) {
259+ ++storage_touched_;
260+ if (it2->second .first != it2->second .second ) {
261+ ++storage_changed_;
262+ }
239263 auto const &key = it2->first ;
240264 auto const &storage_delta = it2->second ;
241265 auto const incarnation = account->incarnation ;
0 commit comments