|
| 1 | +# Node.js Performance Team Meeting 2023-01-09 |
| 2 | + |
| 3 | +## Links |
| 4 | + |
| 5 | +* **GitHub Issue**: https://github.com/nodejs/performance/issues/35 |
| 6 | + |
| 7 | +## Present |
| 8 | + |
| 9 | +* Performance team: @nodejs/performance |
| 10 | +* Yagiz Nizipli (@anonrig) |
| 11 | +* Rafael Gonzaga (@RafaelGSS) |
| 12 | +* Robert Nagy (@ronag) |
| 13 | +* Stephen Belanger (@qard) |
| 14 | +* Ulises Gascon (@UlisesGascon) |
| 15 | +* Marco Ippolito (@marco-ippolito) |
| 16 | +* Mike Roth (@roth-mike) |
| 17 | +* Juan Arboleda (@juanarbol) |
| 18 | +* Miguel Teixeira (@miguelteixeiraa) |
| 19 | +* Jean Burellier (@sheplu) |
| 20 | + |
| 21 | +## Agenda |
| 22 | + |
| 23 | +## Announcements |
| 24 | + |
| 25 | +*Extracted from **performance-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. |
| 26 | + |
| 27 | +Anonrig: Proposal to create a C++ URL parser and embed it directly on Node.js |
| 28 | + |
| 29 | +### nodejs/node |
| 30 | + |
| 31 | +* Start time performance regression when upgrading from 16.x to 18.x [#45662](https://github.com/nodejs/node/issues/45662) |
| 32 | + * It seems fixed. Waiting for release on v19.x and active release lines backport. |
| 33 | + * The backport needs a rewrite of the feature |
| 34 | + |
| 35 | +### nodejs/performance |
| 36 | + |
| 37 | +* Add support for V8 fast call [#23](https://github.com/nodejs/performance/issues/23) |
| 38 | + * We need a volunteer to write a doc for this |
| 39 | + |
| 40 | +* Buffer.toString vs TextDecoder [#18](https://github.com/nodejs/performance/issues/18) |
| 41 | + * For small strings it’s still slow due to JS -> C++ bridge costs. |
| 42 | + * ronagy: Would be good to include V8 Fast call to Buffer.toString too |
| 43 | + |
| 44 | +* fetch [#11](https://github.com/nodejs/performance/issues/11) |
| 45 | +* WHATWG Streams [#9](https://github.com/nodejs/performance/issues/9) |
| 46 | + * Rafael did an investigation and opened a PR that improves the undici.fetch benchmark by ~30% by reusing Errors |
| 47 | + * `makeTransferable` is slow due to some prototype manipulations. We can achieve approximately 30% of improvement on that path. |
| 48 | + * Another possible choice it to optimize Error.captureStackTrace which is quite expensive |
| 49 | + * We might consider implementing the Webstreams on the C++ side. We’re not sure how feasible this is considering the main usage of webstreams is over fetch, and fetch is for compatibility not for performance. |
| 50 | + |
| 51 | +* Buffer.(read|write)(U)Int(LE|BE)(8|16|32) [#2](https://github.com/nodejs/performance/issues/2) |
| 52 | + * ronagy: Happy to provide a PoC. |
| 53 | + |
| 54 | +* Do not parse numbers on url parsers - ipv4[#36](https://github.com/nodejs/performance/issues/36) |
| 55 | + * Current EndsInNumber implementation parses every number, but it is unnecessary for validation only purposes. |
| 56 | + There is a potential 25-30% room for improvement, and Yagiz is happy to guide any volunteer. |
| 57 | + |
| 58 | +## Q&A, Other |
| 59 | + |
| 60 | +## Upcoming Meetings |
| 61 | + |
| 62 | +* **Node.js Foundation Calendar**: https://nodejs.org/calendar |
| 63 | + |
| 64 | +Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. |
| 65 | + |
0 commit comments