先日、Twitterにて素晴らしいツイートを見かけました。
うおおお。@usualoma さんの神PRをマージしたぞ。
— Yusuke Wada (@yusukebe) 2023年11月27日
これでHonoがNode.js上で3倍近く速くなった!これはFastifyよりかは少し遅いけど、他のフレームワークと比べると十分速いレベルで、Node.jsの世界においてもHonoは第一選択肢に入ってもいい存在になった。https://t.co/mcAmUsQcUZ pic.twitter.com/pZiKy913rv
このツイートはHono
製作者のYusuke Wadaさんのもので、どうやらNode.jsランタイム上でHono
のパフォーマンスがめちゃくちゃ改善されたとのこと。この対応はTaku Amanoさんという方が行われたそうで、神PRと称賛されていました。
現在、世界中で注目されているOSSのHono
に取り込まれた神PRとは、一体、どのような内容なのでしょうか。
気になってしょうがないので実際に神PRの内容を見てみたいと思います。Hono
全体のアーキテクチャやWEBフレームワークの作りに詳しいわけではないので、理解できる情報に限界はありますが、チャレンジしてみます。
対応についての全体像はPRを出されたTaku Amanoさんが解説されていました。
RequestとResponseのオブジェクトの初期化が重すぎるのを、prototypeなどの昔ながらの技術を使い置き換えたということで、身も蓋もないものではありますが、とはいえほとんどのユースケースで速くなるし問題もおきないと思います。(問題が起きないのは既存の資産のおかげ)https://t.co/XmENromyyz
— Taku Amano (@usualoma) 2023年11月27日
ふむふむ...。
このツイートを頼りにRequestとResponse周りを中心に見ていきたいと思います。