Не могу найти утечку памяти javascript pdf.js

Я сократил код до "минимума", где проявляется данная проблема. На файлах с большим количеством элементов (таблицы, надписи и прочее. главное что не просто скан документа), код потребляет подозрительно много озу (накапливается по выполнению цикла for, когда идут такого рода страницы). через секунд 10 после окончания оно очищается.

собственно сам код:

"use strict";


pdfInput.addEventListener("change", function () {
    fileHandler(this.files);
})


async function fileHandler(files) {
    // pdf parsing
    const fileURL = URL.createObjectURL(files[0]);
    const pdf = await pdfjsLib.getDocument(fileURL).promise;
    const numPages = pdf.numPages;
    console.log("");
    console.log('Pages: ' + numPages);
    
    for (let numPage = 0; numPage < numPages; numPage++) {
        const page = await pdf.getPage(numPage + 1);

        // transform page to image
        const viewport = page.getViewport({scale: 0.5});
        const canvas = document.createElement("canvas");
        canvas.width = viewport.width;
        canvas.height = viewport.height;
        const ctx = canvas.getContext("2d");
        const renderContext = {canvasContext: ctx, viewport: viewport};
        await page.render(renderContext).promise;
        await page.cleanup();
    }
    pdf.cleanup();
    URL.revokeObjectURL(fileURL);
    files = null;

    console.log("finish");
};

так файл на 59мб (157 страниц) потребляет около 250мб (что тоже как-то многовато), а файл на 17мб (51 страница), где есть несколько таких нагруженных страниц потребляет около 450мб

Буду очень рад, если поможете. Сам я сколько не искал, найти не смог


Ответы (0 шт):