|
| 1 | +# Node.js Performance Team Meeting 2023-01-23 |
| 2 | + |
| 3 | +## Links |
| 4 | + |
| 5 | +* **Recording**: https://www.youtube.com/watch?v=334glI1nluU |
| 6 | +* **GitHub Issue**: https://github.com/nodejs/performance/issues/43 |
| 7 | + |
| 8 | +## Present |
| 9 | + |
| 10 | +* Performance team: @nodejs/performance |
| 11 | +* Ulises Gascon: @ulisesGascon |
| 12 | +* Marvin Hagemeister @marvinhagemeister |
| 13 | +* Yagiz Nizipli: @anonrig |
| 14 | +* Stephen Belanger: @qard |
| 15 | +* Kerem Kat: @krk |
| 16 | +* Joyee Cheung: @joyeecheung |
| 17 | +* Juan Arboleda: @juanarbol |
| 18 | +* Robert Nagy: @ronag |
| 19 | + |
| 20 | +## Agenda |
| 21 | + |
| 22 | +## Announcements |
| 23 | + |
| 24 | + * Node URL got ~30% faster thanks to Miguel (referencing https://github.com/nodejs/node/pull/46227) |
| 25 | + |
| 26 | +### nodejs/node |
| 27 | + |
| 28 | +* Start time performance regression when upgrading from 16.x to 18.x [#45662](https://github.com/nodejs/node/issues/45662) |
| 29 | + * The issue is fixed on the main branch and Node 19. |
| 30 | + * Working on a backport to Node 18. |
| 31 | + |
| 32 | +### nodejs/performance |
| 33 | + |
| 34 | +* Node errors are very slow to create [#40](https://github.com/nodejs/performance/issues/40) |
| 35 | + * A lot of dependencies are starting to *not* use cancellable apis because of the performance issues. |
| 36 | + * Custom optimization for abort signal/abort event can be done (@ronag) |
| 37 | + * Adding and removing the event handler might be the issue. |
| 38 | + * If someone is interested in this, Robert is happy to guide them. |
| 39 | + |
| 40 | +* Module resolution [#39](https://github.com/nodejs/performance/issues/39) |
| 41 | + * Marvin diagnosed an issue with file system operations and the impact. |
| 42 | + * **Very** big part of module resolution is lost on creating errors. |
| 43 | + * Async methods might be improved. |
| 44 | + * Yagiz is happy to add `fs.isFile` kind of API if needed. |
| 45 | + * Joyee has some insights/recommendations for the fs.statSync improvement. |
| 46 | + * The “throw and catch an error even when it’s useless” behavior has an old deprecation TODO. If we remove it then the performance issue would also go away. |
| 47 | + * It’s possible to add options parameter to `fs.existsSync` for checking if it’s a file/directory. |
| 48 | + |
| 49 | +* Add support for V8 fast call [#23](https://github.com/nodejs/performance/issues/23) |
| 50 | + * Can we add v8 support to Node-API? |
| 51 | + |
| 52 | +* Buffer.toString vs TextDecoder [#18](https://github.com/nodejs/performance/issues/18) |
| 53 | + * Let’s improve the docs to use TextDecoder for certain cases of Buffer.toString |
| 54 | + |
| 55 | +* fetch [#11](https://github.com/nodejs/performance/issues/11) |
| 56 | + * Rafael has invested some time on this, and improved it. |
| 57 | + |
| 58 | +* WHATWG Streams [#9](https://github.com/nodejs/performance/issues/9) |
| 59 | + * Skipping because Rafael is not at the meeting. |
| 60 | + |
| 61 | +* Buffer.(read|write)(U)Int(LE|BE)(8|16|32) [#2](https://github.com/nodejs/performance/issues/2) |
| 62 | + * Robert invested some time on this, and theoretically it is possible to use DataView to improve writeInt32LE and readInt32LE implementations. |
| 63 | + * James (@jasnell) might help with this. |
| 64 | + |
| 65 | + |
| 66 | +## Q&A, Other |
| 67 | + |
| 68 | + |
| 69 | +## Upcoming Meetings |
| 70 | + |
| 71 | +* **Node.js Foundation Calendar**: https://nodejs.org/calendar |
| 72 | + |
| 73 | +Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. |
| 74 | + |
0 commit comments