タグ バイトコード
人気順 5 users 10 users 100 users 500 users 1000 usersなぜSQLiteはバイトコードを使うのか
以前にデータベースを自作しようとして、SQLiteのアーキテクチャを見てみたらVMだったことに疑問を感じ、それをツイートしたところ作者からリプをもらいました。 作者いわく、次のような背景があったとのことでした。 SQLiteを作った当初はデータベースエンジンのことをよく知らないがコンパイラのことをよく知っていた ... 続きを読む
WebAssemblyでOpenJDKのJavaランタイムを実装、JarファイルをそのままWebブラウザで実行できる「CheerpJ 3.0」正式リリース
WebAssemblyでOpenJDKのJavaランタイムを実装、JarファイルをそのままWebブラウザで実行できる「CheerpJ 3.0」正式リリース Webブラウザ上で実行可能なWebAssembly製JavaVM 前バージョンのCheerpJは、Javaのバイトコードを事前コンパイルによりJavaScriptコードに変換することで、Webブラウザ上でJavaアプリケーションを... 続きを読む
Python 内包表記の限界: 複雑な処理と実行速度の関係 - Qiita
初めに 本記事は実務上で速度的優位性を得るために内包表記を使うことが合理的かどうか検証したものです。 文中のコードは読者層を広くするために型ヒントを省いています。 更新履歴 追記 (2023/05/24) 計測環境はPython3.12.0a6です。 修正 (2023/05/24) 記事中のバイトコードがPython3.7.16のものだったのでPython3.12... 続きを読む
JITとコードの暖気の実体 - #chiroito ’s blog
どうも、OpenJDKのコミッタをしてます。 とあるブログを読んでいたら気になる点があったので検証してみました。 JITと暖気 Javaプロセスはアプリケーションを動かしながら必要に応じてバックグラウンドでバイトコードをネイティブコードにコンパイルします。このコンパイル時にはCPUリソースを使用します。 コンパイルに... 続きを読む
RubyのJITに生成コードのメモリ局所性対策を入れた話 - k0kubun's blog
昨日、RubyのJITの性能改善のためのパッチを入れた。 github.com buildersconで新ネタの1つとして話そうと思ってた話題だけど、CFPが通らなかったのでブログにまとめる。RubyConfに出してるCFPが通ったらそっちでは話すかも。 JITすればするほどRailsが遅くなる問題 Rubyの次期バージョンである2.6には、バイトコードをC... 続きを読む
JITコンパイルでの冒険 パート1:インタプリタ | コンピュータサイエンス | POSTD
本記事では、BFのインタプリタがナイーブなアプローチから最適化されたバイトコードにコンパイルするアプローチへと徐々に洗練され、その過程で10倍も高速化されていく様子を見ていきます。このソース言語と、その最適化に伴うトレードオフのいくつかについて理解を深めていきましょう。本記事は、JITコンパイラに関するシリーズの第1回目です。計画としては、シンプルな入力言語を使ってそのインタプリタとJITをいくつ... 続きを読む
既存JavaアプリケーションをJavaScriptに変換「CheerpJ」 | OSDN Magazine
米Leaning Technologiesは6月19日、Webアプリケーション向けJavaコンパイラ「CheerpJ」を発表した。既存のJavaアプリケーションをWebアプリケーションにJARアーカイブから直接変換できるという。 CheerpJはJavaのバイトコードをJavaScriptに変換するコンパイラ。同社は2003年にC++をJavaScriptにコンパイルする「Cheerp」をリリース... 続きを読む
解剖Kotlin ~バイトコードを読み解く~ // Speaker Deck
Kotlinの特徴的な機能としてnull許容型や関数型や拡張関数などがよく取り沙汰されます。null安全だとか高階関数で簡潔に記述だとか拡張関数便利最高といった話は枚挙に暇がありません。確かに言語機能としていろいろとJavaに比べて便利なのは分かるんだけど、でもまぁ別にJavaを使っていてクリティカルに困っているわけではないしな〜学習コストとかチームへの導入コストを考えるとそこまで旨味を感じられる... 続きを読む
mrubyのVMざっくり解説 - mirichiの日記
Rubyなんとなく、mrubyのVMの基本的なところを書いておこうと思ったので。誰かの参考になれば。大きな仕様的なところは、・32bit固定長のバイトコードを解釈して動作する。・レジスタをスタックに確保するタイプのレジスタマシンである。従って、スタックの任意の位置をレジスタ番号で指定して直接読み書き可能。・メソッドやブロックなどの単位でバイトコードがirep構造体にまとめられている。みたいな感じ。... 続きを読む
Javaのhello worldの読み方
Javaのhello worldの読み方 前書き お馴染み、hello worldのソース。 class Hello { public static void main(String[] args) { System.out.println("hello world"); } } このコードはコンパイルされると、こんなバイトコードになります。 ca fe ba be 00 00 00 32 00 ... 続きを読む