Javascript 为什么将页面呈现为pdf.js时会出现内存泄漏?

Javascript 为什么将页面呈现为pdf.js时会出现内存泄漏?,javascript,promise,pdfjs,Javascript,Promise,Pdfjs,我使用pdf.js呈现存储在服务器上的页面,从每个页面接收数据。但如果使用循环加载180页Ajax请求,则会消耗500 MB内存。特别是,它们使用数学公式和图形占据渲染页面。一个现成的预构建版本总是消耗大约100-200MB的内存。为什么会这样 下面是页面呈现方法。获取文件并呈现单个页面,因为每个文件都被划分为Pdf文件 PDFJS.getDocument({ data: atob(pageData) }).then(function(pdf) { pdf.getPage(1).

我使用pdf.js呈现存储在服务器上的页面,从每个页面接收数据。但如果使用循环加载180页Ajax请求,则会消耗500 MB内存。特别是,它们使用数学公式和图形占据渲染页面。一个现成的预构建版本总是消耗大约100-200MB的内存。为什么会这样

下面是页面呈现方法。获取文件并呈现单个页面,因为每个文件都被划分为Pdf文件

PDFJS.getDocument({
    data: atob(pageData)
}).then(function(pdf) {
    pdf.getPage(1).then(function(page) {
        var canvas = document.getElementById('page-' + pageNum);
        var context = canvas.getContext('2d');
        var viewport = page.getViewport(settings.scale);
        canvas.height = viewport.height;
        canvas.width = viewport.width;

        var canvasP = document.getElementById('preview-page-' + pageNum);
        var contextP = canvasP.getContext('2d');
        var viewportP = page.getViewport(settings.previewScale);
        canvasP.height = viewportP.height;
        canvasP.width = viewportP.width;

        page.render({
            canvasContext: context,
            viewport: viewport
        }).then(function() {
            pdf.cleanup();
            pdf.destroy();
            page.cleanup();
            render.pagesStatus[pageNum] = pageRenderStatus.S;
        });
    });
}, function (reason) {
    render.pagesStatus[pageNum] = pageRenderStatus.E;
    console.error(reason);
});

Chrome的V8不会立即触发垃圾收集。它通常会等到开始达到最大堆限制后再这样做。我并不是说PDF.js没有问题,但您也应该知道,如果不分析它,很难知道这是否真的是一个问题但是你很可能想做一个赋值而不是比较。t.niese,是的,我被封在这里,但它不会影响内存泄漏。你找到它泄漏的原因了吗?它是否来自pdfjs库?没有这个库,我实现了我想要的。它是否来自pdfjs库?也许是的。我给他们发了一期。