JSer.info #628 - Bun v0.5がリリースされました。
package.json
のworkspaces
を使ったインストールをサポートしています。
Node.jsとの互換性としてnode:dns
、node:tls
、node:net
、node:readline
のサポートが追加されています。
また、モジュール解決時の識別子の優先度の変更なども含まれています。
Remix v1.11.0がリリースされました。
defer
を使ってレスポンス待ちを減らせるように、@remix-run/css-bundle
でのCSSファイルのロード、CSS Modules、Vanilla Extractのサポートが追加されています。
また、Remix v2で導入予定のFlat Routesをopt-inで利用できるようになっています。
Fixing a Memory Leak in a Production Node.js Appという記事と動画では、Node.jsのウェブアプリケーションで発生したメモリリークの原因を調査し、どのように修正していったかについて書かれています。
動画でのライブデバッグでは、Node.jsのMemory Profilter(Chrome DevTools)を使いメモリリークの原因をデバッグしています。
heap snapshotsをつかったメモリリークのデバッグやautocannonというHTTPベンチマークツールを使い継続的にリクエストを送って状況を再現させる方法などを紹介しています。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Bun v0.5 | Bun Blog
Bun 0.5.0リリース。
workspaces
のインストールをサポート。
Node.jsとの互換性としてnode:dns
、node:tls
、node:net
、node:readline
のサポート。
モジュール解決時の識別子の優先度を変更など
Release v2.0.0-alpha.1 · reduxjs/redux-toolkit
github.com/reduxjs/redux-toolkit/releases/tag/v2.0.0-alpha.1
Redux Toolkit v2.0.0-alpha.1リリース。
ESM形式とCJS形式のDual Packageへの変更、thunk
関数をredux-thunk
パッケージへ移動。
v2正式版にはImmer 10を含める予定など
Q1 Roadmap · Issue #17475 · denoland/deno
github.com/denoland/deno/issues/17475
Denoの2023 Q1のロードマップ。
deno.json
に直接import mapを埋め込めるように、type=module
のpackage.json
をサポート、node:
prefixのサポート。
deno.land/x での semver指定のサポート、deno bundle
をDeprecateにし、deno pack
の追加など
Safari 16.3 Release Notes | Apple Developer Documentation
developer.apple.com/documentation/safari-release-notes/safari-16_3-release-notes
Safari 16.3リリース。
fetch()
でContent-Encoding: gzip
のコンテンツをダウンロードしたとき問題を修正、Cross-Origin-Embedder-Policy
のバグを修正。
CSPにprefetch-src
ディレクティブの追加など
Release v29.4.0 · facebook/jest
github.com/facebook/jest/releases/tag/v29.4.0
Jest v29.4.0リリース。
equal
のアルゴリズムをカスタマイズできるexpect.addEqualityTesters()
の追加、オブジェクトのプロパティをモックするjest.replaceProperty()
の追加など
Release v1.11.0 · remix-run/remix
github.com/remix-run/remix/releases/tag/remix%401.11.0
Remix 1.11.0リリース。
defer
を使ってレスポンス待ちを減らせるように、@remix-run/css-bundle
でのCSSファイルのロード、CSS Modules、Vanilla Extractのサポート。
Flat Routesをopt-inで利用できるように
アーティクル
Next.js製アプリケーションのコンパイルを約100倍高速化した話
zenn.dev/mkt/articles/543669021d9a1e
Next.jsのビルド速度の問題を.next/trace
のトレースデータを見て分析する方法について
Why Not document.write()? – CSS Wizardry – Web Performance Optimisation
csswizardry.com/2023/01/why-not-document-write/
document.write()
がなぜ遅いかについて。
Why Is My Jest Test Suite So Slow? | by Steven Lemon | Jan, 2023 | Bits and Pieces
blog.bitsrc.io/why-is-my-jest-suite-so-slow-2a4859bb9ac0
Jestのテストのパフォーマンスのボトルネックの調べ方について。
起動時間、jsdom
のロード、キャッシュ、テストファイルのロード、実際のテストの実行時間について。
Node.jsのプロファイラーを使ってどこに問題があるかを調べる方法について
Fixing a Memory Leak in a Production Node.js App
kentcdodds.com/blog/fixing-a-memory-leak-in-a-production-node-js-app
Node.jsのアプリケーションでメモリリークが発生し、実際にどのようにデバッグして問題を見つけていったかという記事。
動画ではshiki
が使うvscode-oniguruma
のメモリ解放処理を呼んでいないことが原因だと判断し、Workerで処理するように変更した。
しかし、実際にはexpress-http-proxy
がリクエストURLを保持していて、Image CDNのURLが長いためメモリを圧迫していた。
SSSVG: An Interactive SVG Reference | fffuel
実際に触りながらSVGのタグを見れるリファレンスサイト
Optimize Time to First Byte
Time to First Byte (TTFB)の改善について。
Serving-Timing
ヘッダを使い詳細化、CDNの利用、ページのリダイレクトを避ける、SSR時にStreaming Server Renderingを行う。
Service Workerを使ったキャッシュ戦略、103 Early Hintsについてなど
サイト、サービス、ドキュメント
amandaghassaei/gpu-io: A GPU-accelerated computing library for physics simulations and other mathematical calculations
github.com/amandaghassaei/gpu-io
WebGLを使ったGPU処理を扱うライブラリ
ソフトウェア、ツール、ライブラリ関係
Brooooooklyn/canvas: High performance skia binding to Node.js. Zero system dependencies and pure npm packages without any postinstall scripts nor node-gyp.
github.com/Brooooooklyn/canvas
native addonsを使ったskia backendのCanvas APIの実装ライブラリ。
アーキテクチャに合わせたoptionalDependenciesでprebuildのSkiaを含めたバイナリがダウンロードされるため、システムに対して事前に依存をインストールを追加する必要がない