並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 59件

新着順 人気順

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

V8に関するエントリは59件あります。 javascriptJavaScriptarticle などが関連タグです。 人気エントリには 『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エンジンの仕組みを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年くらい経った
          • JavaScript 実行エンジン V8 の JIT 出力コードを読んでみよう

            Chrome の JavaScript はとても高速なことでも有名ですが、その実行エンジンは V8 と呼ばれます。V8 自体は独立したモジュールであり、Node.js 等にも使われております。 V8 が JavaScript を高速に実行する技術の一つが JIT (Just In Time) コンパイルです(一般的に JIT と呼ばれます)。これは、そのまま実行すると遅い JavaScript を実行中にリアルタイムに直接マシンコードに変換し(これが Just In Time と呼ばれる所以です)、途中からそのコードに入れ替えて実行することで高速化を達成しています。特に何度も実行される関数で効力を発揮します。 JIT という名前は聞いたことがあろうとも、実際に JIT がどのようなコードを実行しているのかを確認する機会は滅多にないでしょう。この記事では、実際に V8 の JIT の出力を確

            • 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の挙動を理解する
                • 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をざっくり理解する会
                      • Optimizing Javascript for fun and for profit

                        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
                            • 🚀 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)
                              • 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

                                • 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 - 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
                                          • 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 の新機能
                                            • 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

                                                • 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:

                                                  • 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 コンソール API Explorer カードビルダー トレーニングとサポート ご利用方法 Codelab デベロッパー サポート 最新情報 ブログ デベロ

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

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

                                                          PPL C++とJSを跨ぐ クロスコンポーネント ガベージコレクタ
                                                        • Announcing Stable V8 Bindings for Rust

                                                          Deno is a modern, zero-config JavaScript runtime written in Rust. At its core is Rusty V8, a library that provides high-quality, zero-overhead Rust bindings to V8’s C++ API. Over the past five years, Rusty V8 has undergone nearly 150 releases, racking up more than 3.1 million downloads on crates.io. Today, we’re excited to announce a major milestone: Rusty V8 is now stable and production-ready. Wh

                                                            Announcing Stable V8 Bindings for Rust
                                                          • 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
                                                            • GitHub - lagonapp/lagon: Deploy Serverless Functions at the Edge. Current status: Alpha

                                                              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 - lagonapp/lagon: Deploy Serverless Functions at the Edge. Current status: Alpha
                                                              • Pointer compression in Oilpan · V8

                                                                Show navigation It is absolutely idiotic to have 64-bit pointers when I compile a program that uses less than 4 gigabytes of RAM. When such pointer values appear inside a struct, they not only waste half the memory, they effectively throw away half of the cache. – Donald Knuth (2008) Truer words have (almost) never been spoken. We also see CPU vendors not actually shipping 64-bit CPUs and Android

                                                                • A Deep Dive Into V8 | AppSignal Blog

                                                                  A majority of front-end developers deal with this buzzword all the time: V8. A big part of its popularity is due to the fact that it led JavaScript to a new level of performance. Yes, V8 is very fast. But, how does it perform its magic and why is it so responsive? The official docs state that “V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++. It is used

                                                                    A Deep Dive Into V8 | AppSignal Blog
                                                                  • Electron 8.0.0 | Electron

                                                                    Electron 8.0.0 has been released! It includes upgrades to Chromium 80, V8 8.0, and Node.js 12.13.0. We've added Chrome's built-in spellchecker, and much more! The Electron team is excited to announce the release of Electron 8.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. The release is packed with upgrades, fixes, and new features. We ca

                                                                    • v8によって生成されるbytecodeを確認してみる - kakts-log

                                                                      Qiita Node.js アドベントカレンダー2021の20日目の記事です qiita.com v8のbytecodeについて、自分で書いたコードでどうやって確認するか気になったので調べてみました。 v8によるバイトコード生成 v8がどうやってバイトコード、機械語を生成するかざっくりと整理します。 v8がJavaScriptをコンパイルするとき、パーサはASTを生成します。 ASTはJavascriptコードの文法構造を表現したツリーです。 v8のインタプリタであるIgnitionはこのASTからバイトコードを生成します。 一方で、最適化コンパイラであるTurboFanは最終的にバイトコードを取得し、そのバイトコードから最適化された機械語を生成します。 なぜv8がこの2つの実行モードを持っているかについては、下記の動画で説明されています。 youtu.be JavaScriptコードから

                                                                        v8によって生成されるbytecodeを確認してみる - kakts-log
                                                                      • GitHub - microsoft/deoptexplorer-vscode: A VS Code extension to visualize deoptimizations in your JavaScript and TypeScript code running in V8 (i.e., NodeJS, Edge, Chrome, etc.).

                                                                        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 - microsoft/deoptexplorer-vscode: A VS Code extension to visualize deoptimizations in your JavaScript and TypeScript code running in V8 (i.e., NodeJS, Edge, Chrome, etc.).
                                                                        • The V8 Sandbox · V8

                                                                          After almost three years since the initial design document and hundreds of CLs in the meantime, the V8 Sandbox — a lightweight, in-process sandbox for V8 — has now progressed to the point where it is no longer considered an experimental security feature. Starting today, the V8 Sandbox is included in Chrome's Vulnerability Reward Program (VRP). While there are still a number of issues to resolve be

                                                                          • Indicium: V8 runtime tracer tool · V8

                                                                            Show navigation Indicium: V8 system analyzer #The past three months have been an awesome learning experience for me as I've joined the V8 team (Google London) as an intern, and have been working on a new tool called Indicium. This system analyzer is a unified web interface to trace, debug and analyse patterns of how Inline Caches (ICs) and Maps are created and modified in real-world applications.

                                                                            • How Bun supports V8 APIs without using V8 (part 1) | Bun Blog

                                                                              void multiply(const FunctionCallbackInfo<Value>& info) { Isolate* isolate = info.GetIsolate(); if (info.Length() != 2) { return; } Local<Value> arg1 = info[0]; Local<Value> arg2 = info[1]; if (!arg1->IsNumber() || !arg2->IsNumber()) { return; } double number1 = arg1.As<Number>()->Value(); double number2 = arg2.As<Number>()->Value(); Local<Number> returnValue = Number::New(isolate, number1 * number

                                                                              • V8 release v9.3 · V8

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

                                                                                • V8 Torque user manual · V8

                                                                                  V8 Torque is a language that allows developers contributing to the V8 project to express changes in the VM by focusing on the intent of their changes to the VM, rather than preoccupying themselves with unrelated implementation details. The language was designed to be simple enough to make it easy to directly translate the ECMAScript specification into an implementation in V8, but powerful enough t

                                                                                  新着記事