並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 76件

新着順 人気順

V8の検索結果1 - 40 件 / 76件

V8に関するエントリは76件あります。 javascriptarticlev8 などが関連タグです。 人気エントリには 『2021年にJavaScriptやNode.jsを勉強し始めたので、読んで良かった資料をまとめる』などがあります。
  • 2021年にJavaScriptやNode.jsを勉強し始めたので、読んで良かった資料をまとめる

    2021年になってJavaScript、TypeScript、Node.jsの勉強を始めました。 この記事では、読んで良かった本、記事、公式ドキュメントなどをまとめていきます。 ※2021/03時点の情報です。 個人的なリンク集ですが、「これも読むと良いよ」というものがあればぜひ教えてください。 ECMAScript ECMAScriptの仕様は、EcmaのTC39で策定されている Ecma TC39 GitHub organization ep78 TC39 | mozaic.fm Node.jsの各バージョンでのECMAScriptサポート状況 JavaScript Misreading Chat - #86: JavaScript: the first 20 years JavaScript 二十年の歴史についての回 JavaScript チュートリアル | MDN JavaScri

    • 🚀⚙️ JavaScript Visualized: the JavaScript Engine

      JavaScript is cool (don't @ me), but how can a machine actually understand the code you've written? As JavaScript devs, we usually don't have to deal with compilers ourselves. However, it's definitely good to know the basics of the JavaScript engine and see how it handles our human-friendly JS code, and turns it into something machines understand! 🥳 | Note: This post is mainly based on the V8 eng

        🚀⚙️ JavaScript Visualized: the JavaScript Engine
      • JavaScriptエンジンの仕組みをGIFアニメで分かりやすく解説

        Node.jsおよびChromiumベースのブラウザで使用されるJavaScriptエンジンの仕組みについてGIFアニメーションで分かりやすく解説された記事を紹介します。 🚀⚙️ JavaScript Visualized: the JavaScript Engine by Lydia Hallie 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 JavaScriptを視覚的に解説: JavaScriptエンジン JavaScriptはクールです(私はそう思います)が、あなたが書いたコードをマシンが実際に理解するにはどうすればいいのでしょうか。JavaScriptデベロッパーは通常、コンパイラを自分で扱う必要はありません。しかし、JavaScriptエンジンの仕組みを理解し、人に優しいJavaScriptコードをどのように処理

          JavaScriptエンジンの仕組みをGIFアニメで分かりやすく解説
        • DenoとNode.jsの大きな違い - keroxpのScrapbox

          DenoとNode.jsは両方ともV8をバックエンドにしたサーバーサイドJavaScriptランタイムだが、そこには大きな違いが存在するkeroxp.icon

            DenoとNode.jsの大きな違い - keroxpのScrapbox
          • RustでWebバックエンドを書き始めてから1年くらい経った

            はじめに 僕はDeno Land Inc.でDenoを利用したサーバレスエッジホスティングサービスのDeno Deployを開発するチームに所属しています。OSSのほうのDenoのメイン言語はRustで、Deno Deployのバックエンドも同様にRustで書かれています。 今年のアドベントカレンダーで一休さんから以下の記事が公開されましたが、日本でもRustをWebバックエンドの言語として採用する企業がじわじわと増えてきている印象があります。 Deno DeployのバックエンドをRustで開発してきて、RustでWebバックエンドを書くことのメリットやデメリットをいくつか感じたので、この記事で紹介したいと思います。 Deno Deployの構成 まず、ざっくりとDeno Deployのバックエンドの構成を紹介します。 多くのコンポーネントがありますが、ここではどのようにRustを利用し

              RustでWebバックエンドを書き始めてから1年くらい経った
            • 高速化の観点から new Array(100) を使わない方が良い理由

              別件で V8 の JIT コードの逆アセンブルを眺めている時に気づいたのですが、JavaScriptで new Array(100) という形で配列を作るのは、高速化の観点から言うと V8 においては避けるべき書き方です。 高速化を求める方は、 new Array() や [] で作成して Array#push で追加していくのが良いでしょう。この記事では、その理由を説明します。 今回の記事は、以下の V8 のブログ記事を参考にしております。 https://v8.dev/blog/elements-kinds 「詰まった配列(Packed Array)」と「穴あき配列(Holey Array)」 v8 は内部的に、その配列がどういうタイプの配列であるかの状態を記録しており、その情報を利用して最適化を適用します。状態は内部的には21個あるのですが、今回話題にするのは、その中でも「詰まってい

              • Deno 1.0

                Dynamic languages are useful tools. Scripting allows users to rapidly and succinctly tie together complex systems and express ideas without worrying about details like memory management or build systems. In recent years programming languages like Rust and Go have made it much easier to produce sophisticated native machine code; these projects are incredibly important developments in computer infra

                  Deno 1.0
                • V8エンジンによる内部変換コードでasync/awaitの挙動を理解する

                  はじめに JavaScript の「非同期処理」ってやっぱりかなり難しくないですか? 自分も色々試行錯誤しましたが、結局「完全に理解した🤓」→「やっぱり何も分からん😭」っていうループの中で泥臭く理解を深めていくしかないようです。 さて、非同期処理の制御をある程度予測できるようになるには、非同期 API を提供する環境のことやイベントループ、マイクロタスクなどの仕組みについて理解する必要があります。 そして環境に埋め込まれた JavaScript Engine のことも理解する必要があります。 今回の記事では、JavaScript Engine の1つである V8 が内部で変換するコードから async/await の挙動を理解するための解説を試みたいと思います。V8 エンジンからアプローチすることで async/await の分かりづらい挙動を掌握して非同期処理を打倒します。 今回の記

                    V8エンジンによる内部変換コードでasync/awaitの挙動を理解する
                  • The cost of JavaScript in 2019 · V8

                    Show navigation Note: If you prefer watching a presentation over reading articles, then enjoy the video below! If not, skip the video and read on. “The cost of JavaScript” as presented by Addy Osmani at #PerfMatters Conference 2019.One large change to the cost of JavaScript over the last few years has been an improvement in how fast browsers can parse and compile script. In 2019, the dominant cost

                    • Electron製アプリの起動速度を1,000ミリ秒速くする方法

                      めっちゃダッシュするイヌさん英語で先に書いてから日本語訳しています ⇒ English version is available here. こんにちは、TAKUYAと申します。InkdropというMarkdownノートアプリを開発しています。このアプリはElectronで作っています。Electronは、NodeJSとChromium(ブラウザ)ベースでクロスプラットフォームなデスクトップアプリが開発できるフレームワークです。このフレームワークは基本的に素晴らしいです。なぜならあなたはネイティブ用のフレームワークを学ぶ必要がなく、JavaScript、HTMLとCSSでアプリが作れるからです。もしあなたがウェブデベロッパーだったら、手軽にアプリが作れるでしょう。一方で、多くの人がElectronの弱い点についても言及しています。それはアプリの起動速度が遅い傾向にある、という点です。僕のア

                        Electron製アプリの起動速度を1,000ミリ秒速くする方法
                      • Introducing Deopt Explorer - TypeScript

                        Over the past few months, during the lead-up to the TypeScript 5.0 beta, our team spent a good portion of our time looking for ways to improve the performance of our compiler so that your projects build faster. One of the ways we improved was by looking into an oft overlooked aspect of many JavaScript VMs: inline caching. A Brief Primer on Inline Caching Inline caching is an optimization often use

                          Introducing Deopt Explorer - TypeScript
                        • JavaScriptのJITをざっくり理解する会

                          まずV8は普段自分たちが書いたコードをいくつかのスレッド上で実行するっぽい。 1つはソースコードを取ってきてそれを実行するやつ。それ以外に最適化を行うためのスレッド、プロファイラ、GCなどがあるようだ。 この最適化というのが今回調べたいJITってやつ。 そもそもインタプリタとの差を把握したい。 今の自分の把握の中では、インタプリタは逐次実行をするもの、JITは実行よりも前の段階でコンパイルをしてコンパイル済みのコードを実行すると言った差があるように思える。 このため一般的にはJITが効いたものの方がパフォーマンスが良いとされており、V8もインタプリタで実行するのではなくJITをベースに実行して行っているっぽい

                            JavaScriptのJITをざっくり理解する会
                          • romgrk

                            I often feel like javascript code in general runs much slower than it could, simply because it’s not optimized properly. Here is a summary of common optimization techniques I’ve found useful. Note that the tradeoff for performance is often readability, so the question of when to go for performance versus readability is a question left to the reader. I’ll also note that talking about optimization n

                            • PPLサマースクール2021 「JavaScript処理系とChromeブラウザの実装技術」 - 日本ソフトウェア科学会 プログラミング論研究会 (JSSST-SIGPPL) (Special Interest Group on Programming and Programming Languages)

                              ニュース † Web ページを公開しました (6/29) 無事終了しました。講演資料へのリンクを追記しました (9/1) ↑ 概要 † JavaScript は世界でもっとも利用されている重要なプログラミング言語の一つであり、ウェブブラウザで利用可能なほぼ唯一のプログラミング言語という特徴から、ウェブアプリケーション開発で広く利用されています。 この重要性から、JavaScript処理系の性能改善に関する研究開発が活発に行われてきました。JavaScriptの性能改善は、動的な言語ながらの困難さも知られています。今年のサマースクールでは、鵜川さん(東京大学)にJavaScriptの実装技術について、その困難さをどう克服するか、基本的なところからご紹介いただきます。 JavaScriptを動作させるソフトウェアとして、Google が開発を主導するV8処理系、およびそれを利用するGoogle

                              • V8 Runtime Overview  |  Apps Script  |  Google for Developers

                                Send feedback V8 Runtime Overview Stay organized with collections Save and categorize content based on your preferences. In Apps Script and JavaScript, a runtime or runtime environment contains the JavaScript engine that parses and executes script code. The runtime provides rules for how memory is accessed, how the program can interact with the computer's operating system, and what program syntax

                                  V8 Runtime Overview  |  Apps Script  |  Google for Developers
                                • JavascriptのObjectリテラルとJSON.parseについて - abcdefGets

                                  V8のJSON.parseについて 最近(ちょっと前か)話題のオブジェクトリテラルよりもJSON.parseのほうが早い件について。 その理由を内部実装の観点から書く。 また注意点を最後に書いた。 話題のブログは以下から https://v8.dev/blog/cost-of-javascript-2019 パースについて V8はjavascriptコードをパースするにあたって、Lazy Parseを行っている。 Lazy Parse javascriptはブラウザという特殊な環境で実行される言語であるため、パースにも少々工夫が必要になる。 基本的にV8はすべてのソースコードをパースしない。 一旦グローバルスコープにあるものだけをちゃんとパースして、それ以外はPreParserというパーサで関数だけをかき集める。 function foo() { } function bar() { fu

                                    JavascriptのObjectリテラルとJSON.parseについて - abcdefGets
                                  • 🚀 Visualizing memory management in V8 Engine (JavaScript, NodeJS, Deno, WebAssembly)

                                    This is part of my "memory-management" series 🚀 Demystifying memory management in modern programming languages🚀 Visualizing memory management in JVM(Java, Kotlin, Scala, Groovy, Clojure)🚀 Visualizing memory management in V8 Engine (JavaScript, NodeJS, Deno, WebAssembly)🚀 Visualizing memory management in Golang🚀 Visualizing memory management in RustAvoiding Memory Leaks in NodeJS: Best Practic

                                      🚀 Visualizing memory management in V8 Engine (JavaScript, NodeJS, Deno, WebAssembly)
                                    • V8 release v7.6 · V8

                                      Every six weeks, we create a new branch of V8 as part of our release process. Each version is branched from V8’s Git master immediately before a Chrome Beta milestone. Today we’re pleased to announce our newest branch, V8 version 7.6, which is in beta until its release in coordination with Chrome 76 Stable in several weeks. V8 v7.6 is filled with all sorts of developer-facing goodies. This post pr

                                      • Faster JavaScript calls · V8

                                        Show navigation JavaScript allows calling a function with a different number of arguments than the expected number of parameters, i.e., one can pass fewer or more arguments than the declared formal parameters. The former case is called under-application and the latter is called over-application. In the under-application case, the remaining parameters get assigned the undefined value. In the over-a

                                        • Top-level await · V8

                                          Top-level await enables developers to use the await keyword outside of async functions. It acts like a big async function causing other modules who import them to wait before they start evaluating their body. The old behavior #When async/await was first introduced, attempting to use an await outside of an async function resulted in a SyntaxError. Many developers utilized immediately-invoked async

                                          • The story of a V8 performance cliff in React · V8

                                            Show navigation Previously, we discussed how JavaScript engines optimize object and array access through the use of Shapes and Inline Caches, and we’ve explored how engines speed up prototype property access in particular. This article describes how V8 chooses optimal in-memory representations for various JavaScript values, and how that impacts the shape machinery — all of which helps explain a re

                                            • How V8 executes WASM

                                              WASM Pipeline of V8 javascript engine

                                                How V8 executes WASM
                                              • Next.jsの開発元Vercel、Edge FunctionsでWebAssemblyのサポートを発表

                                                Next.jsの開発元Vercel、Edge FunctionsでWebAssemblyのサポートを発表 Next.jsの開発元であり、Webアプリケーションのホスティングサービスなどを提供するVercelは、CDNエッジでJavaScriptを実行できる「Vercel Edge Functions」でWebAssemblyのサポートを発表しました。 WebAssembly is now supported in Vercel Edge Functions. Code in C, Go, Rust, and more – and run it at the Edge.https://t.co/N5NKwmJ3mn — Vercel (@vercel) August 26, 2022 Vercel Edge FunctionsはCDNエッジでJavaScriptを実行し、認証用プロキシやキャ

                                                  Next.jsの開発元Vercel、Edge FunctionsでWebAssemblyのサポートを発表
                                                • Sparkplug — a non-optimizing JavaScript compiler · V8

                                                  Show navigation Writing a high-performance JavaScript engine takes more than just having a highly optimising compiler like TurboFan. Particularly for short-lived sessions, like loading websites or command line tools, there’s a lot of work that happens before the optimising compiler even has a chance to start optimising, let alone having time to generate the optimised code. This is the reason why,

                                                  • Understanding the ECMAScript spec, part 1 · V8

                                                    Show navigation All episodes In this article, we take a simple function in the spec and try to understand the notation. Let’s go! Preface #Even if you know JavaScript, reading its language specification, ECMAScript Language specification, or the ECMAScript spec for short, can be pretty daunting. At least that’s how I felt when I started reading it for the first time. Let’s start with a concrete ex

                                                    • Object structure in JavaScript engines

                                                      Object structure in JavaScript enginesFrom a developer's perspective, objects in JavaScript are quite flexible and understandable. We can add, remove, and modify object properties on our own. However, few people think about how objects are stored in memory and processed by JS engines. Can a developer's actions, directly or indirectly, impact performance and memory consumption? Let's try to delve i

                                                        Object structure in JavaScript engines
                                                      • GitHub - danbev/learning-v8: Project for learning V8 internals

                                                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

                                                          GitHub - danbev/learning-v8: Project for learning V8 internals
                                                        • GitHub - byte-js/byte: The JavaScript runtime that aims for productivity and ease

                                                          Byte Byte is a easy and productive runtime for Javascript . It makes making complex programs simple and easy-to-scale with its large and fast Rust API Aim The aim for Byte is that modern javascript runtimes are not easy to learn and usually there is a learning curve of about a month to gain knowledge and get comfortable in the software. With Byte, this learning curve is reduced to about a day. Wit

                                                            GitHub - byte-js/byte: The JavaScript runtime that aims for productivity and ease
                                                          • Optional chaining · V8

                                                            Long chains of property accesses in JavaScript can be error-prone, as any of them might evaluate to null or undefined (also known as “nullish” values). Checking for property existence on each step easily turns into a deeply-nested structure of if-statements or a long if-condition replicating the property access chain: // Error prone-version, could throw. const nameLength = db.user.name.length; //

                                                            • V8 release v8.0 · V8

                                                              If pointer compression piqued your interest, be on the lookout for a full blog post with more details. Optimizing higher-order builtins #We recently removed a limitation within TurboFan’s optimization pipeline that prevented aggressive optimizations of higher-order builtins. const charCodeAt = Function.prototype.call.bind(String.prototype.charCodeAt); charCodeAt(string, 8);So far, the call to char

                                                              • Super fast super property access · V8

                                                                Show navigation The super keyword can be used for accessing properties and functions on an object’s parent. Previously, accessing a super property (like super.x) was implemented via a runtime call. Starting from V8 v9.0, we reuse the inline cache (IC) system in non-optimized code and generate the proper optimized code for super property access, without having to jump to the runtime. As you can see

                                                                • Node.js v20 から使える ECMAScript の新機能

                                                                  Node.js v20 リリースされました。 V8 のバージョンが 11.3 まで上がったことで、いくつかの新しい ECMAScript の機能が使えるようになりました。v フラグが好きなのでうれしいです。 どのバージョンからどの機能が使えるようになったかとか忘れてしまうのでメモしておきます。 String.prototype.isWellFormed / String.prototype.toWellFormed 文字列が Well Formed Code Unit Sequence かどうか判定する isWellFormed と、それに変換する toWellFormed が追加されます。WebIDL の文脈では USV 文字列とか言われますね。 これは WebAssembly みたいな USV 文字列前提の環境とやり取りするときに便利。Babel みたいな JavaScript を解釈

                                                                    Node.js v20 から使える ECMAScript の新機能
                                                                  • A new way to bring garbage collected programming languages efficiently to WebAssembly · V8

                                                                    A recent article on WebAssembly Garbage Collection (WasmGC) explains at a high level how the Garbage Collection (GC) proposal aims to better support GC languages in Wasm, which is very important given their popularity. In this article, we will get into the technical details of how GC languages such as Java, Kotlin, Dart, Python, and C# can be ported to Wasm. There are in fact two main approaches:

                                                                    • A lighter V8 · V8

                                                                      In late 2018 we started a project called V8 Lite, aimed at dramatically reducing V8’s memory usage. Initially this project was envisioned as a separate Lite mode of V8 specifically aimed at low-memory mobile devices or embedder use-cases that care more about reduced memory usage than throughput execution speed. However, in the process of this work, we realized that many of the memory optimizations

                                                                      • GitHub - lmt-swallow/puppy-browser: An example implementation of a tiny Web browser for educational purposes.

                                                                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                          GitHub - lmt-swallow/puppy-browser: An example implementation of a tiny Web browser for educational purposes.
                                                                        • V8 ランタイムの概要  |  Apps Script  |  Google for Developers

                                                                          Google Workspace アプリ 管理コンソール Cloud Search Gmail Google Calendar Google Chat Google Classroom Google Docs Google Drive Google Forms Google Keep Google Meet Google Sheets Google Sites Google Slides Google ToDo リスト Google Vault 拡張、自動化、共有 アドオン Apps Script チャットアプリ ドライブアプリ マーケットプレイス ツール 管理コンソール Apps Script ダッシュボード Google Cloud Console API Explorer トレーニングとサポート ご利用方法 Codelab デベロッパー サポート 更新情報 ブログ デベロッパー プレ

                                                                            V8 ランタイムの概要  |  Apps Script  |  Google for Developers
                                                                          • PPL C++とJSを跨ぐ クロスコンポーネント ガベージコレクタ

                                                                            C++とJSを跨ぐ クロスコンポーネント ガベージコレクタ 服部慶士(keishi@chromium.org) 2021-08-31 https://bit.ly/3DzLRBs 1

                                                                              PPL C++とJSを跨ぐ クロスコンポーネント ガベージコレクタ
                                                                            • V8 release v7.5 · V8

                                                                              Every six weeks, we create a new branch of V8 as part of our release process. Each version is branched from V8’s Git master immediately before a Chrome Beta milestone. Today we’re pleased to announce our newest branch, V8 version 7.5, which is in beta until its release in coordination with Chrome 75 Stable in several weeks. V8 v7.5 is filled with all sorts of developer-facing goodies. This post pr

                                                                              • V8の奥に潜むプログラミング言語 Torqueを触ってみた - Qiita

                                                                                はじめに 「JavaScriptのMath.Powはなぜ速いのか」という質問を読んでいたら、V8の組み込み関数に「Torque」という言語が使われているという記述を見つけました。 高速化のために、プログラミング言語処理系の中だけで使われるプログラミング言語...ロマンを感じずにはいられません。実際にTorqueを動かしてみましょう。 バージョン V8: 記事執筆時点(2022/9/18)のmainブランチ 言語の概要 TorqueはV8組み込み関数の最適化処理を記述するために使われています。C++ではなくあえて別言語を使うのは、ロジックの可読性を上げるためだそうです。 プログラミング言語 V8 Torqueによって、V8プロジェクトに貢献する開発者は無関係な詳細実装に煩わされることなく、VMへの変更の意図に専念し変更を表現することができるようになります。この言語はECMAScriptの仕様

                                                                                  V8の奥に潜むプログラミング言語 Torqueを触ってみた - Qiita
                                                                                • The V8 Engine and JavaScript Optimization Tips | DigitalOcean

                                                                                  While we believe that this content benefits our community, we have not yet thoroughly reviewed it. If you have any suggestions for improvements, please let us know by clicking the “report an issue“ button at the bottom of the tutorial. V8 is Google’s engine for compiling our JavaScript. Firefox has it’s own engine called SpiderMonkey, it’s quite similar to V8 but there are differences. We will be

                                                                                    The V8 Engine and JavaScript Optimization Tips | DigitalOcean

                                                                                  新着記事