タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

techrachoとVMに関するhachiのブックマーク (1)

  • Rubyの(グローバル)VMロックをトレースする(翻訳)|TechRacho by BPS株式会社

    興味が湧いてきましたか?自分でトレースを生成する詳しい方法は以下をお読みください。 GVLとは何か RubyのVM(仮想マシン)は巨大なプログラムで、大半がC言語で書かれています(JRubyやTruffle Rubyについてはまたの機会に😁)。 Rubyアプリケーションでスレッドを作成すると、Ruby VMはそれらのスレッドをOSのスレッドと1対1で一致させます(この点をいつか変更したいという議論が持ち上がっていたこともあったようで、実に興味深いことです)。 このように、Ruby VMはマルチスレッドの巨大なCプログラムなのです。このようなプログラムでコンカレンシーのバグを回避するには、複数のスレッドが同時に動くときの正しさを保証する何らかの戦略を採用する必要があります。Ruby開発者たちが選んだ戦略は、グローバルVMロック(Global VM Lock: GVL)と呼ばれています。 G

    Rubyの(グローバル)VMロックをトレースする(翻訳)|TechRacho by BPS株式会社
  • 1