Follow up on this PR #435. Currently, it took roughly 22 seconds to load my 1.3GB file. After inspecting the profiler, there's a large chunk of time spending in Frame.getOrInsert. I figure we can reduce the number of invocations by half. It reduces the load time to roughly 18 seconds.I also tested with a smaller file (~350MB), and it show similar gains, about 15-20%
Speedscope TypeScript source
This directory contains the bulk of speedscope's source code.
Subdirectories
gl/: WebGL code. This includes e.g. the code to render flamecharts.import/: Code to import profiles from varous profilers into speedscope. This include e.g. the code to import Chrome performance profiles.lib/: Mostly dependency-less utilities. This includes e.g. an LRU cache implementation, basic linear algebra classes, and the definition of speedscope's file format.app-state/: Speedscope's application state managementtypings/: TypeScript definition filesviews/: View code to generate the HTML & CSS used to construct the UI. Implemented usingpreactandaphrodite.