From 21f4542e5f20b335191d599583e2753fe4af815a Mon Sep 17 00:00:00 2001 From: Asad Date: Fri, 16 May 2025 17:29:09 -0400 Subject: [PATCH] feat: implemented timestamp-based LRU caching for all workbooks - add timestamp to cache keys to properly handle deleted/replaced files - create modular LRUCache implementation to limit memory usage (20 workbooks and 255 worksheet per workbook) - added unit tets for LRUCache --- image.png | Bin 144899 -> 0 bytes package.json | 126 +++++++-------------------- src/cacheManagement/lruCache.ts | 126 +++++++++++++++++++++++++++ src/cacheManagement/workbookCache.ts | 104 ++++++++++++++++++++++ src/excelEditorProvider.ts | 59 ++++++++----- src/excelUtils.ts | 2 +- src/test/extension.test.ts | 101 +++++++++++++++++++-- 7 files changed, 391 insertions(+), 127 deletions(-) delete mode 100644 image.png create mode 100644 src/cacheManagement/lruCache.ts create mode 100644 src/cacheManagement/workbookCache.ts diff --git a/image.png b/image.png deleted file mode 100644 index bb6c4c26c05655683f5d71c80d181d5a45ca7ed8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144899 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�#3V4tgy;~61+llelzBd1a$FZRjq0EyYAgDr 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 z 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%0AkZ(U21#6NcfsYHJ+Nxv~AMMmlGExwC$R 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 z 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", "publisher": "asadbek", "icon": "img/logo.png", - "version": "0.0.7", + "version": "0.0.8", "license": "Apache-2.0", "bugs": { "url": "https://git.sheetjs.com/asadbek064/sheetjs-vscode-extension/issues" @@ -35,99 +35,37 @@ "viewType": "excelViewer.spreadsheet", "displayName": "SheetJS Viewer", "selector": [ - { - "filenamePattern": "*.xlsx" - }, - { - "filenamePattern": "*.xlsm" - }, - { - "filenamePattern": "*.xlsb" - }, - { - "filenamePattern": "*.xls" - }, - { - "filenamePattern": "*.xlw" - }, - { - "filenamePattern": "*.xlr" - }, - { - "filenamePattern": "*.csv" - }, - { - "filenamePattern": "*.dif" - }, - { - "filenamePattern": "*.slk" - }, - { - "filenamePattern": "*.sylk" - }, - { - "filenamePattern": "*.prn" - }, - { - "filenamePattern": "*.numbers" - }, - { - "filenamePattern": "*.et" - }, - { - "filenamePattern": "*.ods" - }, - { - "filenamePattern": "*.fods" - }, - { - "filenamePattern": "*.uos" - }, - { - "filenamePattern": "*.dbf" - }, - { - "filenamePattern": "*.wk1" - }, - { - "filenamePattern": "*.wk3" - }, - { - "filenamePattern": "*.wks" - }, - { - "filenamePattern": "*.wk2" - }, - { - "filenamePattern": "*.wk4" - }, - { - "filenamePattern": "*.123" - }, - { - "filenamePattern": "*.wq1" - }, - { - "filenamePattern": "*.wq2" - }, - { - "filenamePattern": "*.wb1" - }, - { - "filenamePattern": "*.wb2" - }, - { - "filenamePattern": "*.wb3" - }, - { - "filenamePattern": "*.qpw" - }, - { - "filenamePattern": "*.xlr" - }, - { - "filenamePattern": "*.eth" - } + {"filenamePattern": "*.xlsx"}, + {"filenamePattern": "*.xlsm"}, + {"filenamePattern": "*.xlsb"}, + {"filenamePattern": "*.xls"}, + {"filenamePattern": "*.xlw"}, + {"filenamePattern": "*.xlr"}, + {"filenamePattern": "*.csv"}, + {"filenamePattern": "*.dif"}, + {"filenamePattern": "*.slk"}, + {"filenamePattern": "*.sylk"}, + {"filenamePattern": "*.prn"}, + {"filenamePattern": "*.numbers"}, + {"filenamePattern": "*.et"}, + {"filenamePattern": "*.ods"}, + {"filenamePattern": "*.fods"}, + {"filenamePattern": "*.uos"}, + {"filenamePattern": "*.dbf"}, + {"filenamePattern": "*.wk1"}, + {"filenamePattern": "*.wk3"}, + {"filenamePattern": "*.wks"}, + {"filenamePattern": "*.wk2"}, + {"filenamePattern": "*.wk4"}, + {"filenamePattern": "*.123"}, + {"filenamePattern": "*.wq1"}, + {"filenamePattern": "*.wq2"}, + {"filenamePattern": "*.wb1"}, + {"filenamePattern": "*.wb2"}, + {"filenamePattern": "*.wb3"}, + {"filenamePattern": "*.qpw"}, + {"filenamePattern": "*.xlr"}, + {"filenamePattern": "*.eth" } ], "priority": "default" } diff --git a/src/cacheManagement/lruCache.ts b/src/cacheManagement/lruCache.ts new file mode 100644 index 0000000..23ce39f --- /dev/null +++ b/src/cacheManagement/lruCache.ts @@ -0,0 +1,126 @@ +/** + * generic Least Recently Used (LRU) cache implementation + */ +export class LRUCache { + private cache = new Map(); + private accessTimes = new Map(); + private readonly maxSize: number; + + /** + * create a new LRU cache + * @param maxSize Maximum number of items to store in the cache + */ + constructor(maxSize: number) { + this.maxSize = maxSize; + } + + /** + * get an item from the cache + * @param key cache key + * @returns cached value or undefined if not found + */ + get(key: K): V | undefined { + if (!this.cache.has(key)) { + return undefined; + } + + // update access time + this.accessTimes.set(key, Date.now()); + return this.cache.get(key); + } + + /** + * store an item in the cache + * @param key cache key + * @param value value to cache + */ + set(key: K, value: V): void { + // check if we need to make room + if (!this.cache.has(key) && this.cache.size >= this.maxSize) { + this.evictLeastRecentlyUsed(); + } + + // store the value and update access time + this.cache.set(key, value); + this.accessTimes.set(key, Date.now()); + } + + /** + * check if an item exists in the cache + * @param key The cache key + * @returns True if the item exists + */ + has(key: K): boolean { + return this.cache.has(key); + } + + /** + * remove an item from the cache + * @param key key to remove + * @returns True if an item was removed + */ + delete(key: K): boolean { + this.accessTimes.delete(key); + return this.cache.delete(key); + } + + /** + * get all keys in the cache + * @returns Array of cache keys + */ + keys(): K[] { + return [...this.cache.keys()]; + } + + /** + * get the current size of the cache + */ + get size(): number { + return this.cache.size; + } + + /** + * clear all items from the cache + */ + clear(): void { + this.cache.clear(); + this.accessTimes.clear(); + } + + /** + * remove items matching a prefix + * @param predicate Function that returns true for keys to remove + */ + deleteByPredicate(predicate: (key: K) => boolean): void { + for (const key of this.keys()) { + if (predicate(key)) { + this.delete(key); + } + } + } + + /** + * remove the least recently used item from the cache + * @private + */ + private evictLeastRecentlyUsed(): void { + if (this.cache.size === 0) { return; } + + // find the oldest entry + let oldestKey: K | undefined; + let oldestTime = Infinity; + + for (const [key, time] of this.accessTimes.entries()) { + if (time < oldestTime) { + oldestTime = time; + oldestKey = key; + } + } + + // remove the oldest entry + if (oldestKey !== undefined) { + console.log(`Evicting least recently used cache entry: ${String(oldestKey)}`); + this.delete(oldestKey); + } + } +} \ No newline at end of file diff --git a/src/cacheManagement/workbookCache.ts b/src/cacheManagement/workbookCache.ts new file mode 100644 index 0000000..b4f2785 --- /dev/null +++ b/src/cacheManagement/workbookCache.ts @@ -0,0 +1,104 @@ +import * as vscode from 'vscode'; +import * as XLSX from 'xlsx'; +import { LRUCache } from './lruCache'; + +/** + * specialized cache for SheetJS workbooks with URI-based keys + */ +export class WorkbookCache { + private workbookCache: LRUCache; + private sheetCache: LRUCache; + + /** + * create a new workbook cache + * @param maxWorkbooks Maximum number of workbooks to cache + * @param maxSheets Maximum number of sheet HTML to cache + */ + constructor(maxWorkbooks: number = 10, maxSheets: number = 255) { + this.workbookCache = new LRUCache(maxWorkbooks); + this.sheetCache = new LRUCache(maxSheets); + } + + /** + * generate a cache key for a document + * @param uri Document URI + * @param mtime Modification time + */ + generateKey(uri: vscode.Uri, mtime: number): string { + return `${uri.toString()}-${mtime}`; + } + + /** + * get a workbook from the cache + * @param key Cache key + */ + getWorkbook(key: string): XLSX.WorkBook | undefined { + return this.workbookCache.get(key); + } + + /** + * store a workbook in the cache + * @param key Cache key + * @param workbook Workbook to cache + */ + setWorkbook(key: string, workbook: XLSX.WorkBook): void { + this.workbookCache.set(key, workbook); + } + + /** + * check if a workbook exists in the cache + * @param key Cache key + */ + hasWorkbook(key: string): boolean { + return this.workbookCache.has(key); + } + + /** + * get sheet HTML from the cache + * @param key Sheet cache key + */ + getSheet(key: string): string | undefined { + return this.sheetCache.get(key); + } + + /** + * store sheet HTML in the cache + * @param key Sheet cache key + * @param html Sheet HTML + */ + setSheet(key: string, html: string): void { + this.sheetCache.set(key, html); + } + + /** + * Check if sheet HTML exists in the cache + * @param key Sheet cache key + */ + hasSheet(key: string): boolean { + return this.sheetCache.has(key); + } + + /** + * generate a sheet cache key + * @param baseKey Base workbook key + * @param sheetName Sheet name + * @param page Page number + */ + generateSheetKey(baseKey: string, sheetName: string, page: number): string { + return `${baseKey}-${sheetName}-page-${page}`; + } + + /** + * clear all caches for a specific URI + * @param uriString URI string prefix to clear + */ + clearCachesForUri(uriString: string): void { + console.log(`Clearing caches for ${uriString}`); + + // clear workbook cache entries for this URI + this.workbookCache.deleteByPredicate(key => key.startsWith(uriString)); + + // clear sheet cache entries for this URI + this.sheetCache.deleteByPredicate(key => key.startsWith(uriString)); + } +} \ No newline at end of file diff --git a/src/excelEditorProvider.ts b/src/excelEditorProvider.ts index 4a6be53..e94ba04 100644 --- a/src/excelEditorProvider.ts +++ b/src/excelEditorProvider.ts @@ -3,12 +3,11 @@ import * as XLSX from 'xlsx'; import { ExcelDocument } from './excelDocument'; import { getLoadingViewHtml, getErrorViewHtml, getExcelViewerHtml } from './webviewContent'; import { parseRange, colLetterToNum, numToColLetter } from './excelUtils'; +import { WorkbookCache } from './cacheManagement/workbookCache'; export class ExcelEditorProvider implements vscode.CustomReadonlyEditorProvider { - // cache workbooks in memory to avoid re-parsing - private workbookCache = new Map(); - private sheetCache = new Map(); - + private cache: WorkbookCache; + public static register(context: vscode.ExtensionContext): vscode.Disposable { return vscode.window.registerCustomEditorProvider( 'excelViewer.spreadsheet', @@ -17,7 +16,9 @@ export class ExcelEditorProvider implements vscode.CustomReadonlyEditorProvider< ); } - constructor(private readonly context: vscode.ExtensionContext) { } + constructor(private readonly context: vscode.ExtensionContext) { + this.cache = new WorkbookCache(20, 255); + } async openCustomDocument(uri: vscode.Uri): Promise { console.log(`Opening document: ${uri.fsPath}`); @@ -66,23 +67,30 @@ export class ExcelEditorProvider implements vscode.CustomReadonlyEditorProvider< } private async processExcelFile(document: ExcelDocument, webviewPanel: vscode.WebviewPanel): Promise { + const stat = await vscode.workspace.fs.stat(document.uri); + const cacheKey = `${document.uri.toString()}-${stat.mtime}`; + // check if we have a cached workbook for this file let workbook: XLSX.WorkBook; - const cacheKey = document.uri.toString(); - - if (this.workbookCache.has(cacheKey)) { + + if (this.cache.hasWorkbook(cacheKey)) { console.log('Using cached workbook'); - workbook = this.workbookCache.get(cacheKey)!; + workbook = this.cache.getWorkbook(cacheKey)!; this.updateLoadingProgress(webviewPanel, 'Using cached workbook...'); } else { + // clear old caches for this URI + this.cache.clearCachesForUri(document.uri.toString()); + + // load workbook workbook = await this.loadWorkbook(document, webviewPanel); } // setup the initial view with just the sheet selector const sheetNames = workbook.SheetNames; - this.setupWebviewContent(document, webviewPanel, workbook, sheetNames); + this.setupWebviewContent(document, webviewPanel, workbook, sheetNames, cacheKey); } + private async loadWorkbook(document: ExcelDocument, webviewPanel: vscode.WebviewPanel): Promise { this.updateLoadingProgress(webviewPanel, 'Reading file...'); @@ -121,9 +129,11 @@ export class ExcelEditorProvider implements vscode.CustomReadonlyEditorProvider< this.updateLoadingProgress(webviewPanel, 'Preparing view...'); + const stat = await vscode.workspace.fs.stat(document.uri); + const cacheKey = `${document.uri.toString()}-${stat.mtime}`; + // cache the workbook - const cacheKey = document.uri.toString(); - this.workbookCache.set(cacheKey, workbook); + this.cache.setWorkbook(cacheKey, workbook); return workbook; } catch (error) { @@ -137,7 +147,8 @@ export class ExcelEditorProvider implements vscode.CustomReadonlyEditorProvider< document: ExcelDocument, webviewPanel: vscode.WebviewPanel, workbook: XLSX.WorkBook, - sheetNames: string[] + sheetNames: string[], + cacheKey: string ): void { // exit early if there are no sheets if (sheetNames.length === 0) { @@ -165,20 +176,21 @@ export class ExcelEditorProvider implements vscode.CustomReadonlyEditorProvider< webviewPanel.webview.html = getExcelViewerHtml(sheetNames, sheetSelector); // handle messages from the webview - this.setupMessageHandlers(document, webviewPanel, workbook); + this.setupMessageHandlers(document, webviewPanel, workbook, cacheKey); + } private setupMessageHandlers( document: ExcelDocument, webviewPanel: vscode.WebviewPanel, - workbook: XLSX.WorkBook + workbook: XLSX.WorkBook, + cacheKey: string ): void { - const baseCacheKey = document.uri.toString(); webviewPanel.webview.onDidReceiveMessage(async message => { if (message.type === 'getSheetPage') { await this.handleGetSheetPage( - baseCacheKey, + cacheKey, workbook, webviewPanel, message @@ -194,7 +206,7 @@ export class ExcelEditorProvider implements vscode.CustomReadonlyEditorProvider< message: any ): Promise { const { sheetName, page, rowsPerPage, maxColumns } = message; - const cacheKey = `${baseCacheKey}-${sheetName}-page-${page}`; + const cacheKey = this.cache.generateSheetKey(baseCacheKey, sheetName, page); this.updateLoadingProgress(webviewPanel, `Preparing page ${page + 1} of sheet: ${sheetName}`); @@ -205,8 +217,8 @@ export class ExcelEditorProvider implements vscode.CustomReadonlyEditorProvider< let rangeInfo: any = null; // check if this page is already cached - if (this.sheetCache.has(cacheKey)) { - sheetHtml = this.sheetCache.get(cacheKey)!; + if (this.cache.hasSheet(cacheKey)) { + sheetHtml = this.cache.getSheet(cacheKey)!; } else { const sheet = workbook.Sheets[sheetName]; @@ -220,7 +232,7 @@ export class ExcelEditorProvider implements vscode.CustomReadonlyEditorProvider< sheetHtml = this.processSheetPage(sheet, rangeInfo, page, rowsPerPage, maxColumns); // cache the result - this.sheetCache.set(cacheKey, sheetHtml); + this.cache.setSheet(cacheKey, sheetHtml); } } @@ -264,8 +276,8 @@ export class ExcelEditorProvider implements vscode.CustomReadonlyEditorProvider< const newPageSheet: XLSX.WorkSheet = { '!ref': pageRange }; // preserve important sheet properties - if (sheet['!cols']) newPageSheet['!cols'] = sheet['!cols']; - if (sheet['!rows']) newPageSheet['!rows'] = sheet['!rows']; + if (sheet['!cols']) { newPageSheet['!cols'] = sheet['!cols']; } + if (sheet['!rows']) { newPageSheet['!rows'] = sheet['!rows']; } if (sheet['!merges']) { // filter merges that are in this page's range newPageSheet['!merges'] = sheet['!merges'].filter(merge => { @@ -296,4 +308,5 @@ export class ExcelEditorProvider implements vscode.CustomReadonlyEditorProvider< // convert to HTML return XLSX.utils.sheet_to_html(newPageSheet); } + } \ No newline at end of file diff --git a/src/excelUtils.ts b/src/excelUtils.ts index 1ead3b9..5ddd91e 100644 --- a/src/excelUtils.ts +++ b/src/excelUtils.ts @@ -1,6 +1,6 @@ // parse range like A1:Z100 and return information about dimensions export function parseRange(rangeStr: string) { - if (!rangeStr || !rangeStr.includes(':')) return null; + if (!rangeStr || !rangeStr.includes(':')) { return null; } const parts = rangeStr.split(':'); const startCell = parts[0]; diff --git a/src/test/extension.test.ts b/src/test/extension.test.ts index 4ca0ab4..e8b9164 100644 --- a/src/test/extension.test.ts +++ b/src/test/extension.test.ts @@ -1,15 +1,98 @@ import * as assert from 'assert'; - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it import * as vscode from 'vscode'; -// import * as myExtension from '../../extension'; +import * as path from 'path'; +import * as fs from 'fs'; +import * as os from 'os'; +import * as XLSX from 'xlsx'; +import { LRUCache } from '../cacheManagement/lruCache'; +import { WorkbookCache } from '../cacheManagement/workbookCache'; -suite('Extension Test Suite', () => { - vscode.window.showInformationMessage('Start all tests.'); - test('Sample test', () => { - assert.strictEqual(-1, [1, 2, 3].indexOf(5)); - assert.strictEqual(-1, [1, 2, 3].indexOf(0)); +// test suite for the LRUCache class +suite('LRUCache Tests', () => { + test('Should store and retrieve values', () => { + const cache = new LRUCache(3); + cache.set('a', 1); + cache.set('b', 2); + + assert.strictEqual(cache.get('a'), 1); + assert.strictEqual(cache.get('b'), 2); + assert.strictEqual(cache.get('c'), undefined); + }); + + test('Should respect maximum size', () => { + const cache = new LRUCache(2); + cache.set('a', 1); + cache.set('b', 2); + cache.set('c', 3); + + // 'a' should be evicted as it's the least recently used + assert.strictEqual(cache.get('a'), undefined); + assert.strictEqual(cache.get('b'), 2); + assert.strictEqual(cache.get('c'), 3); + }); + + test('Should delete by predicate', () => { + const cache = new LRUCache(5); + cache.set('a1', 1); + cache.set('a2', 2); + cache.set('b1', 3); + cache.set('b2', 4); + + // delete all keys starting with 'a' + cache.deleteByPredicate(key => key.startsWith('a')); + + assert.strictEqual(cache.get('a1'), undefined); + assert.strictEqual(cache.get('a2'), undefined); + assert.strictEqual(cache.get('b1'), 3); + assert.strictEqual(cache.get('b2'), 4); + }); +}); + +// test suite for the WorkbookCache class +suite('WorkbookCache Tests', () => { + test('Should generate correct cache keys', () => { + const cache = new WorkbookCache(5, 20); + const uri = vscode.Uri.file('/path/to/file.xlsx'); + const mtime = 12345; + + const key = cache.generateKey(uri, mtime); + assert.strictEqual(key, `${uri.toString()}-${mtime}`); + + const sheetKey = cache.generateSheetKey(key, 'Sheet1', 0); + assert.strictEqual(sheetKey, `${key}-Sheet1-page-0`); + }); + + test('Should store and retrieve workbooks', () => { + const cache = new WorkbookCache(5, 20); + const mockWorkbook = { SheetNames: ['Sheet1'], Sheets: { Sheet1: {} } } as XLSX.WorkBook; + + const key = 'test-key'; + cache.setWorkbook(key, mockWorkbook); + + assert.strictEqual(cache.hasWorkbook(key), true); + assert.deepStrictEqual(cache.getWorkbook(key), mockWorkbook); + }); + + test('Should clear caches for a URI', () => { + const cache = new WorkbookCache(5, 20); + const baseUri = 'file:///path/to/file.xlsx'; + + // create workbook and sheet caches with the base URI + cache.setWorkbook(`${baseUri}-123`, { SheetNames: [], Sheets: {} } as XLSX.WorkBook); + cache.setSheet(`${baseUri}-123-Sheet1-page-0`, '
'); + cache.setWorkbook(`${baseUri}-456`, { SheetNames: [], Sheets: {} } as XLSX.WorkBook); + + // Create another cache entry with a different URI + cache.setWorkbook('file:///other/file.xlsx-789', { SheetNames: [], Sheets: {} } as XLSX.WorkBook); + + // Clear caches for the base URI + cache.clearCachesForUri(baseUri); + + // Check that the base URI caches are cleared but the other remains + assert.strictEqual(cache.hasWorkbook(`${baseUri}-123`), false); + assert.strictEqual(cache.hasSheet(`${baseUri}-123-Sheet1-page-0`), false); + assert.strictEqual(cache.hasWorkbook(`${baseUri}-456`), false); + assert.strictEqual(cache.hasWorkbook('file:///other/file.xlsx-789'), true); }); });