タグ

2022年12月25日のブックマーク (2件)

  • WebAssemblyの歴史について

    はじめに 最近、Node.jsとDenoの開発者であるRyan DahlさんがJavaScript Containersという記事を書いていることを知った。 Webとの親和性の高さがサーバーサイドで求められる中、JavaScriptがユニバーサルスクリプトとして活躍するだろう。そして、コンテナランタイムがLinuxコンテナの抽象レイヤーとしてあるように、JavaScript界隈では既存のWebAPIそのものが抽象化の手助けとなるであろう、みたいな趣旨の内容だった。 彼がChromeのV8 JavaScript Engineを使ってNode.jsを誕生させた同じ頃、JavaScriptの可能性を信じて方法を模索した人がいる。Alon Zakaiさんだ。 Alon(以降、敬称略)はWebAssemblyやその考えの元になった asm.js 、 JavaScriptコンパイラ Emscripte

    WebAssemblyの歴史について
  • Goのポインタ渡しは値渡しよりパフォーマンスが良いという誤解 - Qiita

    この記事は MicroAd Advent Calendar 2022 の12日目の記事です。 「Goのポインタは8バイトだから、ちょっとした構造体を値渡しでコピーするよりポインタで渡した方が早くなる」 長らくそう思い込んでいたのですが、以下の記事でポインタ渡しには意外なデメリットが多いことを知り、誤解だと気づきました。 この記事では自分なりにポインタのデメリットをまとめつつ、ポインタ渡しで当に良いのかを確認すべきパターンを紹介しようと思います。 ポインタが実は高価な理由 ポインタが指す値にアクセスする際にnilかどうかのチェックが必ず入る ポインタがnilの場合、Goはpanic()をおこす必要があるため ポインタは動的メモリアロケーションの原因になりがち ポインタが指す値はヒープ領域に置かれがち(絶対ではないけど一般的に多い) ヒープ領域は確保にまとまったメモリの検索、解放にGCが必要

    Goのポインタ渡しは値渡しよりパフォーマンスが良いという誤解 - Qiita