• Posts
  • RSS
  • ◂◂RSS
  • Contact

  • Overhead of MessageChannel

    March 27th, 2020
    tech  [html]
    The Channel Messaging API gives you a way to pass information asynchronously between different origins on the web, such as cross-origin iframes. Traditionally you would use window.postMessage(), but the a MessageChannel has the advantage of being clearer, only requiring validating origins on setup, and handling delegation better. Reading this 2016 post, however, I was worried that it might have enough overhead that postMessage made more sense in performance-sensitive contexts. Benchmark time!

    I made a test page which alternates between loading trycontra.com/test/messageChannelResponse.html and trycontra.com/test/postMessageResponse.html. I'm using two different domains so that I can test cross-origin performance. First it loads messageChannelResponse in an iframe, waits for it to load, and then times how long it takes to pass in a MessagePort and receive a response on it. Then it does the same basic operation postMessageResponse with plain postMessage. This is a worst-case for MessageChannel, since I stand up the while channel only to use it a single time.

    I ran 1,000 iterations, interleaved, on Chrome (80.0), Firefox (74.0), and Safari (13.1). All of these were on my 2017 MacBook Pro. Here are all the runs, sorted from fastest to slowest [1]:

    In Chrome, MessageChannel is a bit faster, while in Firefox and especially Safari it's slower. Additionally, Firefox runs it faster than Safari, which runs it faster than Chrome. Safari also has more consistent performance than Chrome, with a flatter distribution. Firefox is in between, with a flat distribution for postMessage but a few slow calls in the tail for MessageChannel. If you're writing something where ~7ms/call in Safari is an issue then it might be worth sticking to postMessage, otherwise MessageChannel seems fine.


    [1] I find this kind of "sideways CDF" a really useful visualization tool, and possibly the chart I make most often.

    Comment via: facebook, lesswrong

    Recent posts on blogs I like:

    Yet another world spirit sock puppet

    Crossposted from world spirit sock puppet. I have almost successfully made and made decent this here my new blog, in spite of little pre-existing familiarity with relevant tools beyond things like persistence in the face of adversity and Googling things. …

    via Meteuphoric October 25, 2020

    Things You Might Have Missed, October 21, 2020

    Hey folks! I am, as I mentioned last week, taking this week off in an effort to catch up on my sanity and also some grading and writing I need to be doing. But I didn’t want to leave you with nothing, so I thought I might use this as an opportunity to dir…

    via A Collection of Unmitigated Pedantry October 23, 2020

    Job Sprawl as Deurbanization

    A few years ago, Aaron Renn was writing, I think about the General Electric headquarters’ move from suburban New York to Downtown Boston in 2016, that in the future, city center jobs would go to high-value industries like corporate HQs and professional se…

    via Pedestrian Observations October 23, 2020

    more     (via openring)


  • Posts
  • RSS
  • ◂◂RSS
  • Contact