The 'Forge Invoke' Pause: Any hint where the ~1 second goes?

I did some rough Performance comparison between the Connect edition and a Forge version of our macros.

Many Forge apps will have to at least one network trip to the backend to display anything useful. So I was looking into how long it takes to that: As soon as the iframe is loaded, how long does it take until there is a initial request done.

What I expected:

  • Frame and the static resource is loaded
  • The Forge Brige/GraphQL is invoked and the race is off to fetch the data
  • The Forge Bridge call is completed and the macro finally can display something useful.

However, I get a ~1second pause until the Forbe Bridge finally gets going:

  • Frame and the static resource is loaded
  • ~1 seconds of ‘nothing-ness’
  • The Forge Bridge/GraphQL is invoked and the race is off to fetch the data
  • The Forge Bridge call is completed and the macro finally can display something useful.

That means the Forge version of the Macro already looses 1 second before it even can do a request to the backed.

My questions:

  • Did anyone else notice this behavior?
  • If so, is this a performance bug in Forge or something we do wrong?

Example timings.

  • The iframe resource requested at 15.88s, taking 18ms.
    • I navigated to the page, so there is navigating time for this late start =)
  • The forge_ui_invokeExtesion requested at 16.87, nearly 1 second later.

6 Likes