diff --git a/.eslintrc.js b/.eslintrc.js index ae8f56298..158833c66 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -9,6 +9,7 @@ module.exports = { plugins: ['prettier', '@typescript-eslint', 'react-hooks'], rules: { '@typescript-eslint/explicit-function-return-type': 'off', + 'prettier/prettier': 'error', 'react-hooks/rules-of-hooks': 'error', 'react-hooks/exhaustive-deps': [ 'error', diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index aca7d14e8..85ec9d9be 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: - node-version: [10.x, 12.x, 14.x] + node-version: [18.x, 20.x] steps: - uses: actions/checkout@v2 diff --git a/CHANGELOG.md b/CHANGELOG.md index 9687224b3..5e8068a1f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,28 @@ +## [1.20.0] - 2024-01-12 + +- Partition based on samples instead of traceEvents when importing a sample-based chrome trace [[#460](https://github.com/jlfwong/speedscope/pull/460)] (by @zacharyfmarion) + +## [1.19.0] - 2023-12-27 + +- Improve hermes profile frame keys to better group frames [[#459](https://github.com/jlfwong/speedscope/pull/459)] (by @zacharyfmarion) +- Update README.md + +## [1.18.0] - 2023-12-26 + +- Add hermes-specific support for the trace event format [[#458](https://github.com/jlfwong/speedscope/pull/458)] (by @zacharyfmarion) +- Update README-ADMINS.md with npm login instructions [[#457](https://github.com/jlfwong/speedscope/pull/457)] (by @jlfwong) + +## [1.17.0] - 2023-12-25 + +- Upgrade prettier, update prettier & react-hooks eslint plugins [[#456](https://github.com/jlfwong/speedscope/pull/456)] (by @jlfwong) +- Upgrade typescript & eslint to latest, fix resulting errors [[#455](https://github.com/jlfwong/speedscope/pull/455)] (by @jlfwong) +- Re-enable eslint prettier rule after being accidentally disabled for 3 years [[#454](https://github.com/jlfwong/speedscope/pull/454)] (by @jlfwong) +- Support the chrome JSON trace format (allows viewing of hermes traces) [[#453](https://github.com/jlfwong/speedscope/pull/453)] (by @zacharyfmarion) +- Fix bug in selectQueueToTakeFromNext for trace profiles [[#450](https://github.com/jlfwong/speedscope/pull/450)] (by @zacharyfmarion) +- Add bounds checking for sampleTypeIndex [[#449](https://github.com/jlfwong/speedscope/pull/449)] (by @jlfwong) +- Update README-zh_CN.md [[#442](https://github.com/jlfwong/speedscope/pull/442)] (by @byronhe) +- Update publish-and-deploy to remove automated release creation [[#440](https://github.com/jlfwong/speedscope/pull/440)] (by @jlfwong) + ## [1.16.0] - 2023-07-16 - Automate more of the release process [[#439](https://github.com/jlfwong/speedscope/pull/439)] (by @jlfwong) diff --git a/README-ADMINS.md b/README-ADMINS.md index 9eefd3970..084d75d50 100644 --- a/README-ADMINS.md +++ b/README-ADMINS.md @@ -34,6 +34,8 @@ Ensure you have the Github CLI tools installed and you're authenticated. Try run gh auth status npm whoami +In your default browser, ensure that you're logged into your npm account, otherwise you'll see a 404 page when you open the authenticate link during the npm publish. + Once ready to publish, run: scripts/publish-and-deploy.sh diff --git a/README.md b/README.md index 14710966c..5ba7306e3 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ English | [简体中文](./README-zh_CN.md) # 🔬speedscope - -A fast, interactive web-based viewer for performance profiles. An alternative viewer for [FlameGraphs][1]. Will happily display multi-megabyte profiles without crashing your browser. +A fast, interactive web-based viewer for performance profiles. Supports import from a variety of profiles in a variety of languages (JS, Ruby, Python, Go & more). Try it here: https://www.speedscope.app Given raw profiling data, speedscope allows you to interactively explore the data to get insight into what's slow in your application, or allocating all the memory, or whatever data is represented in the profiling data. @@ -10,27 +9,7 @@ Given raw profiling data, speedscope allows you to interactively explore the dat [0]: https://en.wikipedia.org/wiki/Profiling_(computer_programming)#Statistical_profilers [1]: https://github.com/brendangregg/FlameGraph -# Usage - -Visit https://www.speedscope.app, then either browse to find a profile file or drag-and-drop one onto the page. The profiles are not uploaded anywhere -- the application is totally in-browser. - -## Command line usage - -For offline use, or convenience in the terminal, you can also install speedscope -via npm: - - npm install -g speedscope - -Invoking `speedscope /path/to/profile` will load speedscope in your default browser. - -## Self-contained directory - -If you don't have npm or node installed, you can also download a -self-contained version from https://github.com/jlfwong/speedscope/releases. -After you download the zip file from a release, simply unzip it and open the -contained `index.html` in Chrome or Firefox. - -## Supported file formats +# Supported file formats speedscope is designed to ingest profiles from a variety of different profilers for different programming languages & environments. Click the links below for documentation on how to import from a specific source. @@ -39,6 +18,7 @@ speedscope is designed to ingest profiles from a variety of different profilers - [Importing from Firefox](https://github.com/jlfwong/speedscope/wiki/Importing-from-Firefox) - [Importing from Safari](https://github.com/jlfwong/speedscope/wiki/Importing-from-Safari) - [Importing from Node.js](https://github.com/jlfwong/speedscope/wiki/Importing-from-Node.js) + - [Importing from Hermes (for React Native)](https://github.com/jlfwong/speedscope/wiki/Importing-from-Hermes) - Ruby - [Importing from stackprof](https://github.com/jlfwong/speedscope/wiki/Importing-from-stackprof-(ruby)) - [Importing from rbspy](https://github.com/jlfwong/speedscope/wiki/Importing-from-rbspy-(ruby)) @@ -62,6 +42,25 @@ speedscope is designed to ingest profiles from a variety of different profilers - [Importing from custom sources](https://github.com/jlfwong/speedscope/wiki/Importing-from-custom-sources) Contributions to add support for additional formats are welcome! See issues with the ["import source" tag](https://github.com/jlfwong/speedscope/issues?q=is%3Aissue+is%3Aopen+label%3A%22import+source%22). +# Usage + +Visit https://www.speedscope.app, then either browse to find a profile file or drag-and-drop one onto the page. The profiles are not uploaded anywhere -- the application is totally in-browser. + +## Command line usage + +For offline use, or convenience in the terminal, you can also install speedscope +via npm: + + npm install -g speedscope + +Invoking `speedscope /path/to/profile` will load speedscope in your default browser. + +## Self-contained directory + +If you don't have npm or node installed, you can also download a +self-contained version from https://github.com/jlfwong/speedscope/releases. +After you download the zip file from a release, simply unzip it and open the +contained `index.html` in Chrome or Firefox. ## Importing via URL diff --git a/assets/index.html b/assets/index.html index 99e40264d..6512f4e4a 100644 --- a/assets/index.html +++ b/assets/index.html @@ -6,7 +6,7 @@