title: Puppeteer slow execution on Google Cloud Functions
body: <p>I am using Puppeteer on Google Cloud Functions.</p>
  
  <p>After a few tests, I noticed that my code takes about 56 seconds on average when deployed on Google Cloud Functions infrastructure, while the same function tested locally takes only 13 seconds.</p>
  
  <p>index.js</p>
  
  <pre><code>const chromium = require('chrome-aws-lambda');
  const puppeteer = require('puppeteer-core');
  const functions = require('firebase-functions');
  
  exports.check = functions.https.onRequest(async (req, res) =&gt; {
      const License = req.query.License;
  
      browser = await puppeteer.launch({
          args: chromium.args,
          defaultViewport: chromium.defaultViewport,
          executablePath: await chromium.executablePath,
          headless: chromium.headless,
        });
      const page = await browser.newPage();
  
      await page.goto('http://www.example.com', {waitUntil: 'networkidle2'});
      await page.focus('#txtUserName');
      await page.keyboard.type('testUsername');
      await page.focus('#txtPassword');
      await page.keyboard.type('123123');
      await page.click('#btnLogin');
      await page.waitForSelector('#ctl00_400_header_400')
      //console.log("[✓]login successfully.")
      await page.evaluate(() =&gt; document.querySelector('#ctl00_400_header_400').click());
      await page.waitForSelector('#__tab_ctl00_ContentPlaceHolder1_tabQuickSearch_vehicleSerachClaim')
      //console.log("[✓]Enquriy page loaded successfully")
      await page.evaluate(() =&gt; document.querySelector('#__tab_ctl00_ContentPlaceHolder1_tabQuickSearch_vehicleSerachClaim').click());
      await page.waitForSelector('#ctl00_ContentPlaceHolder1_tabQuickSearch_vehicleSerachClaim_rdvehicleSearchLicense')
      //console.log("[✓]Claim section loaded successfully")
      await page.evaluate(() =&gt; document.querySelector('#ctl00_ContentPlaceHolder1_tabQuickSearch_vehicleSerachClaim_rdvehicleSearchLicense').click());
      //console.log("[✓]License tap loaded successfully")
      await page.waitForSelector('#ctl00_ContentPlaceHolder1_tabQuickSearch_vehicleSerachClaim_txtclaimSearchPersonLicNo');
      await page.focus('#ctl00_ContentPlaceHolder1_tabQuickSearch_vehicleSerachClaim_txtclaimSearchPersonLicNo');
      await page.keyboard.type(License);
      await page.evaluate(() =&gt; document.querySelector('#ctl00_ContentPlaceHolder1_tabQuickSearch_vehicleSerachClaim_btnVheicleSearchButtonClaim').click());    
  
      try {
          await page.waitForSelector('#ctl00_ContentPlaceHolder1_lblErrMessage')
          const textContent = await page.evaluate(() =&gt; document.querySelector('#ctl00_ContentPlaceHolder1_lblErrMessage').textContent);
          res.status(200).send( 'Result =&gt; ' + textContent );
          await browser.close();
      } catch (error) {
          //console.log("The element didn't appear.")
      }    
  
      try {
          await page.waitForSelector('#ctl00_ContentPlaceHolder1_tabQuickSearch_vehicleSerachClaim_grdClaimDraftSp &gt; tbody &gt; tr:nth-child(3) &gt; td')
          const textContent = await page.evaluate(() =&gt; document.querySelector('#ctl00_ContentPlaceHolder1_tabQuickSearch_vehicleSerachClaim_grdClaimDraftSp &gt; tbody &gt; tr:nth-child(3) &gt; td').textContent);
          res.status(200).send( 'Result =&gt; ' + textContent );
          await browser.close();
      } catch (error) {
          //console.log("The element didn't appear.")
      }   
  
  });
  </code></pre>
  
  <p>Package.json</p>
  
  <pre><code>{
      "name": "functions",
      "version": "0.0.1",
      "description": "Cloud Functions for Firebase",
      "dependencies": {
        "chrome-aws-lambda": "1.14.0",
        "firebase-functions": "2.2.0",
        "iltorb": "2.4.2",
        "puppeteer-core": "1.14.0",
        "firebase-admin": "7.2.0"
      },
      "engines": {
        "node": "8"
      },
      "private": true
    }
  </code></pre>
  
  <p>Deployed with Firebase Functions using NodeJS 8 &amp; 2 GB Memory allocated.</p>
  
  <p>How I can improve my code to speed up the execution time?</p>