mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
Persistent optimization (#382)
* State serialization consuming less RAM * Move large-boc-serializer to crypto/vm, refactor code Co-authored-by: SpyCheese <mikle98@yandex.ru>
This commit is contained in:
parent
c04eb8e4f3
commit
89b8717cf8
21 changed files with 665 additions and 157 deletions
|
@ -31,12 +31,6 @@
|
|||
namespace vm {
|
||||
namespace {
|
||||
|
||||
class CellDbReader {
|
||||
public:
|
||||
virtual ~CellDbReader() = default;
|
||||
virtual td::Result<Ref<DataCell>> load_cell(td::Slice hash) = 0;
|
||||
};
|
||||
|
||||
struct DynamicBocExtCellExtra {
|
||||
std::shared_ptr<CellDbReader> reader;
|
||||
};
|
||||
|
@ -176,6 +170,10 @@ class DynamicBagOfCellsDbImpl : public DynamicBagOfCellsDb, private ExtCellCreat
|
|||
return td::Status::OK();
|
||||
}
|
||||
|
||||
std::shared_ptr<CellDbReader> get_cell_db_reader() override {
|
||||
return cell_db_reader_;
|
||||
}
|
||||
|
||||
td::Status set_loader(std::unique_ptr<CellLoader> loader) override {
|
||||
reset_cell_db_reader();
|
||||
loader_ = std::move(loader);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue