Note: this is a past event Check out the current event!

Peter Nemeth

Principal Engineer at Prezi at Prezi

Talk

Taming the Browser
Friday 16:35 - 17:20
Topics:
Case Study
Native
Web
Cross Platform
Level:
Advanced

Your rating:
0/5

asm.js, the low-level subset of JavaScript, and recently WebAssembly, a completely new portable and efficient compilation target supported by all the major browsers, enables running native applications at near native speed on the Web using the Emscripten compiler.

These technologies are already stable and do amazing work but there is no magic flick which makes your carefully crafted application run the same way it runs on a native platform.

This talk will cover how at Prezi we recently ported our cross-platform viewer application written in C++ to the browser. After a short introduction to Emscripten, asm.js and WebAssembly we will go through our journey leading to production. Main topics will revolve around the restrictions of running in a browser like:

  • program loading: options to speed up the JIT / AOT compilation step which has a negative effect on the user experience
  • memory handling: duality of memory, especially when interacting with the browser environment
  • concurrent execution: with the lack of shared memory how to get the most out of Web Workers and how we implemented a partly compile-time C++ job system API the browser
You will learn how to introduce browsers as new target platforms for a multi-platform C++ codebase allowing you to reach an even wider audience.


About

Peter is a Principal Engineer at Prezi and has been with the company since it was founded in 2009. For the last couple of years, he has been leading the efforts to provide a consistent and smooth user experience across all supported platforms (Windows, macOS, Android, iOS and browsers).