Improve performance generate pdf using puppeteer

chuongtrh

Chuongtran

Posted on October 13, 2018

Improve performance generate pdf using puppeteer

My first post about generating pdf using puppeteer at here.

At this post, I want to share about tip how to improve performance generate pdf.

We can use page.setContent to improve performance.

Using goto

console.time('launch')
const  browser  =  await  puppeteer.launch({
args: ['--no-sandbox'],
headless: true
});
console.timeEnd('launch');
console.time('newPage')
const  page  =  await  browser.newPage();
console.timeEnd('newPage')
console.time('goto')
await  page.goto(`data: text/html ,${finalHtml}`, {
waitUntil: 'networkidle0'
});
console.timeEnd('goto')
console.time('pdf')
await  page.pdf(options);
console.timeEnd('pdf')

Log

launch: 168.766ms
newPage: 87.764ms
goto: 1018.925ms
pdf: 109.687ms

Using setContent

console.time('launch')
const  browser  =  await  puppeteer.launch({
args: ['--no-sandbox'],
headless: true
});
console.timeEnd('launch');
console.time('newPage')
const  page  =  await  browser.newPage();
console.timeEnd('newPage')
console.time('setContent')
await  page.setContent(finalHtml);
console.timeEnd('setContent')
console.time('pdf')
await  page.pdf(options);
console.timeEnd('pdf')

Log

launch: 147.349ms
newPage: 89.669ms
setContent: 15.247ms
pdf: 161.551ms

Gotcha, setContent faster than goto

Thanks for your reading my post.

💖 💪 🙅 🚩
chuongtrh
Chuongtran

Posted on October 13, 2018

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related