From aab6b5969717b192555147b2e4fce86323c5f83c Mon Sep 17 00:00:00 2001 From: Theofilos Augoustis Date: Tue, 26 Dec 2023 19:57:40 +0100 Subject: Improve SparseMemory.write_memory performance Reduce overhead of handling sparse memory --- parser.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'parser.py') diff --git a/parser.py b/parser.py index d2fcf13..19fb7c2 100644 --- a/parser.py +++ b/parser.py @@ -1,5 +1,6 @@ """Parsing of JSON files containing snapshot data.""" +import base64 import json import re from typing import TextIO @@ -29,7 +30,7 @@ def parse_snapshots(json_stream: TextIO) -> list[ProgramState]: state.set(reg, val) for mem in _get_or_throw(snapshot, 'memory'): start, end = _get_or_throw(mem, 'range') - data = _get_or_throw(mem, 'data').encode() + data = base64.b64decode(_get_or_throw(mem, 'data')) assert(len(data) == end - start) state.write_memory(start, data) @@ -51,7 +52,7 @@ def serialize_snapshots(snapshots: list[ProgramState], out_stream: TextIO): for addr, data in snapshot.mem._pages.items(): mem.append({ 'range': [addr, addr + len(data)], - 'data': data.decode(), + 'data': base64.b64encode(data).decode('ascii') }) res['snapshots'].append({ 'registers': regs, 'memory': mem }) -- cgit 1.4.1