mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Rename LimitedMap => MemoryLimitedMap
This commit is contained in:
@ -14,7 +14,7 @@ import jimp from 'jimp';
|
||||
|
||||
import { AVATAR_WIDTH, AVATAR_HEIGHT } from '../constants.js';
|
||||
import { jsonParser, urlencodedParser } from '../express-common.js';
|
||||
import { deepMerge, humanizedISO8601DateTime, tryParse, extractFileFromZipBuffer, LimitedMap } from '../util.js';
|
||||
import { deepMerge, humanizedISO8601DateTime, tryParse, extractFileFromZipBuffer, MemoryLimitedMap } from '../util.js';
|
||||
import { TavernCardValidator } from '../validator/TavernCardValidator.js';
|
||||
import { parse, write } from '../character-card-parser.js';
|
||||
import { readWorldInfoFile } from './worldinfo.js';
|
||||
@ -24,7 +24,7 @@ const defaultAvatarPath = './public/img/ai4.png';
|
||||
|
||||
// KV-store for parsed character data
|
||||
// 100 MB limit. Would take roughly 3000 characters to reach this limit
|
||||
const characterDataCache = new LimitedMap(1024 * 1024 * 100);
|
||||
const characterDataCache = new MemoryLimitedMap(1024 * 1024 * 100);
|
||||
// Some Android devices require tighter memory management
|
||||
const isAndroid = process.platform === 'android';
|
||||
|
||||
|
16
src/util.js
16
src/util.js
@ -672,11 +672,11 @@ export function isValidUrl(url) {
|
||||
}
|
||||
|
||||
/**
|
||||
* LimitedMap class that limits the memory usage of string values.
|
||||
* MemoryLimitedMap class that limits the memory usage of string values.
|
||||
*/
|
||||
export class LimitedMap {
|
||||
export class MemoryLimitedMap {
|
||||
/**
|
||||
* Creates an instance of LimitedMap.
|
||||
* Creates an instance of MemoryLimitedMap.
|
||||
* @param {number} maxMemoryInBytes - The maximum allowed memory in bytes for string values.
|
||||
*/
|
||||
constructor(maxMemoryInBytes) {
|
||||
@ -710,7 +710,7 @@ export class LimitedMap {
|
||||
return;
|
||||
}
|
||||
|
||||
const newValueSize = LimitedMap.estimateStringSize(value);
|
||||
const newValueSize = MemoryLimitedMap.estimateStringSize(value);
|
||||
|
||||
// If the new value itself exceeds the max memory, reject it
|
||||
if (newValueSize > this.maxMemory) {
|
||||
@ -720,7 +720,7 @@ export class LimitedMap {
|
||||
// Check if the key already exists to adjust memory accordingly
|
||||
if (this.map.has(key)) {
|
||||
const oldValue = this.map.get(key);
|
||||
const oldValueSize = LimitedMap.estimateStringSize(oldValue);
|
||||
const oldValueSize = MemoryLimitedMap.estimateStringSize(oldValue);
|
||||
this.currentMemory -= oldValueSize;
|
||||
// Remove the key from its current position in the queue
|
||||
const index = this.queue.indexOf(key);
|
||||
@ -733,7 +733,7 @@ export class LimitedMap {
|
||||
while (this.currentMemory + newValueSize > this.maxMemory && this.queue.length > 0) {
|
||||
const oldestKey = this.queue.shift();
|
||||
const oldestValue = this.map.get(oldestKey);
|
||||
const oldestValueSize = LimitedMap.estimateStringSize(oldestValue);
|
||||
const oldestValueSize = MemoryLimitedMap.estimateStringSize(oldestValue);
|
||||
this.map.delete(oldestKey);
|
||||
this.currentMemory -= oldestValueSize;
|
||||
}
|
||||
@ -777,7 +777,7 @@ export class LimitedMap {
|
||||
return false;
|
||||
}
|
||||
const value = this.map.get(key);
|
||||
const valueSize = LimitedMap.estimateStringSize(value);
|
||||
const valueSize = MemoryLimitedMap.estimateStringSize(value);
|
||||
this.map.delete(key);
|
||||
this.currentMemory -= valueSize;
|
||||
|
||||
@ -842,7 +842,7 @@ export class LimitedMap {
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes the LimitedMap iterable.
|
||||
* Makes the MemoryLimitedMap iterable.
|
||||
* @returns {Iterator} - Iterator over [key, value] pairs.
|
||||
*/
|
||||
[Symbol.iterator]() {
|
||||
|
Reference in New Issue
Block a user