1
0
mirror of https://github.com/tobspr/shapez.io.git synced 2026-03-02 03:39:21 +00:00

Improve saving speed by using crc32 instead of sha1 for checksum

This commit is contained in:
tobspr
2020-08-10 23:31:02 +02:00
parent 9701a143ec
commit 2203d5fc6a
7 changed files with 59 additions and 41 deletions

View File

@@ -1,6 +1,8 @@
import { compressX64 } from "../core/lzstring";
import { globalConfig } from "../core/config";
import { sha1 } from "../core/sensitive_utils.encrypt";
import { compressObject } from "../savegame/savegame_compressor";
import { CRC_PREFIX } from "../core/sensitive_utils.encrypt";
import crc32 from "crc/crc32";
function accessNestedPropertyReverse(obj, keys) {
let result = obj;
@@ -24,9 +26,13 @@ function performJob(job, data) {
case "compressX64": {
return compressX64(data);
}
case "compressFile": {
const checksum = sha1(data.text + salt);
return data.compressionPrefix + compressX64(checksum + data.text);
case "compressObject": {
const optimized = compressObject(data.obj);
const stringified = JSON.stringify(optimized);
const checksum = CRC_PREFIX + crc32(stringified + salt).toString(16);
return data.compressionPrefix + compressX64(checksum + stringified);
}
default:
throw new Error("Webworker: Unknown job: " + job);