並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 18 件 / 18件

新着順 人気順

gcの検索結果1 - 18 件 / 18件

  • Rubyの並列並行処理のこれまでとこれから - クックパッド開発者ブログ

    技術部の笹田です。今日で退職するので、バタバタと返却などの準備をしています。 本記事では、Rubyの並行並列処理の改善についての私の取り組みについて、おもに RubyKaigi 2022 と 2023 で発表した内容をもとにご紹介します。 並行と並列はよく似た言葉ですが、本記事では次のような意味で使います。 並行処理(concurrent processing)は、「複数の独立した実行単位が、待っていればいつか終わる(もしくは、処理が進む)」という論理的な概念で、古典的にはタイムシェアリングシステムなどが挙げられます。 並列処理(parallel processing)は、「複数の独立した実行単位のうちのいくつかが、あるタイミングで同時に動いている」という物理的な概念で、古典的には複数のCPU上で同時に実行させる、というものです。最近では、1つのCPU上で複数コアが同時に動いている、という

      Rubyの並列並行処理のこれまでとこれから - クックパッド開発者ブログ
    • MoonBit が WebAssembly 時代の理想(の原型)だった

      最近 moonbit という言語を知ったのですが、これが調べれば調べるほど好きになる言語だったので、紹介させてください。 文法的には GC 付きの Rust で、 WebAssembly にコンパイルされます。とくに CDN Edge Worker 上での実行を想定しているようです。もう好き。 注意: まだ若い言語なので、これから言語仕様がガンガン変わっていくと思われます。あくまで現時点での情報です。 tl;dr Pros だいたい GC あり Rust と捉えていい 文法面のキャッチアップが容易 ライフタイムの難しさを考えなくていい すでに vscode 拡張やパッケージマネージャ等のエコシステムが整っている Cons まだ安定していない / しばらくはソースコードが公開されない 現時点では学習リソースやパッケージ数が足りず、書き手の腕力が求められる はじめに: JS/TS/Rust へ

        MoonBit が WebAssembly 時代の理想(の原型)だった
      • Node.js でメモリ肥大化の原因を特定してみた

        はじめに ユビーでエンジニアをしているおおいしつかさです。 これは、Ubie Engineering Advent Calendar 2023の12月7日の記事になります。 何を書こうかなー、最近はユビーの根幹システムのリアーキテクチャをやっているのでその辺かなーと思ったのですが、まだ仕掛かり中だということと具体な業務に直結しそうな内容なので抽象化して書くのが面倒そうだなーと思ってたところに軽いトピックが飛び込んできたので、そのことを書くことにしました。 ChatGPTはみなさん使われていると思いますが、ぼくも別の業務でOpenAI関連の機能開発に携わっています(ユビーで働くといろんな業務に携われるのがいいところです) 。 その仕事の中で、Node.js環境でメモリ肥大化の事象に遭遇したので、それをどのように発見して改善したかについてお話します。 ぼくは今も昔もRubyが大好きですが、ふだ

          Node.js でメモリ肥大化の原因を特定してみた
        • PEP 703 - 兼雑記

          https://peps.python.org/pep-0703/ Python の GIL 外す話。これすごく楽しい読みものでした。参照カウントのところが一番人気だと思うのですが、他のところも色々良い。こういう、「んーこういうことするとこういう問題が起きない?」と思ったら次の章くらいでそれが説明される、みたいな読みものは大変好きです 参照カウント: オブジェクトっていうのは作ったスレッドが解放するというのがほとんどなんだから、その場合はロックをいらなくする、他に渡ったら普通の参照カウントぽくする、という話。 Swift に 2018 年に導入された 話らしい。他のスレッドに渡された後で DECREF すると他スレッド用の参照カウントが負になりうるのだけど、その時に queue に入れるということをして、ややこしいので、なんかこれ無しですむ方法はないのかなぁ……と Immortalize

            PEP 703 - 兼雑記
          • 「ガベージコレクション 自動的メモリ管理を構成する理論と実装」を読んだ

            最近「おれってガベージコレクションを勉強するにあたってめちゃくちゃ恵まれた環境にあるのでは?」とふと思い立ち、ベージコレクションの勉強を始めました。 ガベージコレクションの勉強を始めるにあたって、とりあえず「The Garbage Collection Handbook (first edition)」の邦訳である「ガベージコレクション 自動的メモリ管理を構成する理論と実装」を読むことにしました。 この記事では、読み終わってうれしいので、雑に感想を書きなぐっています。表記が「GC」だったり「ガベージコレクション」だったりするのは雑に書いたからです。 前提知識 ガベージコレクションの事前知識はほとんど不要で、何をしてくれるものか大まかにわかっていれば良い程度だと思います。つまり、ヒープに確保した領域を明示的に解放しなくても、何かのアルゴリズムでいい感じにやってくれる仕組み、ということを知って

              「ガベージコレクション 自動的メモリ管理を構成する理論と実装」を読んだ
            • WasmGCについて予習する

              この記事はWebAssembly Advent Calendar 2023 2日目の記事です. ガベージコレクタ(WasmGC)[1]が10月頃にChromeとFirefoxでデフォルトで有効になり,標準化目前ということで大いに盛り上がったのは記憶に新しいかと思います. これはChromeが対応したというよりはChromeが採用しているJavaScriptのランタイムであるV8がデフォルトでWasmGCが有効になったというのが正確な表現で,DenoでもDartからビルドしたWasmを実行する際にGCを有効にするフラグを立てる必要がなくなり,実行しやすくなったなぁと皆さんも感じているかと思います. -$ deno run --allow-read --v8-flags=--experimental-wasm-gc run.js +$ deno run --allow-read run.js

                WasmGCについて予習する
              • Go, Containers, and the Linux Scheduler

                Like many Go developers my applications are usually deployed in containers. When running in container orchestrators it’s important to set CPU limits to ensure that the container doesn’t consume all the CPU on the host. However, the Go runtime is not aware of the CPU limits set on the container and will happily use all the CPU available. This has bitten me in the past, leading to high latency, in t

                • 次のLTS版となる「Node.js 22」正式リリース。WebAssembly GCがデフォルトで利用可能に

                  次のLTS版となる「Node.js 22」正式リリース。WebAssembly GCがデフォルトで利用可能に JavaScriptランタイム「Node.js」の最新バージョンとなる「Node.js 22」正式版がリリースされました。 Node.jsは偶数バージョンがリリースされてから6カ月の後に、30カ月の長期サポート期間(LTS:Long Term Support)に入ります。Node.js 22も、6カ月後の2024年10月にLTSとなる予定です。 Node.js 22 is here Featuring: require()ing ESM graphs, WebSocket client, updates of the V8 JavaScript engine, and more. Big thank you to @_rafaelgss and @satanacchio for t

                    次のLTS版となる「Node.js 22」正式リリース。WebAssembly GCがデフォルトで利用可能に
                  • Pythonと互換性を保ちつつ、非常に高速に動作することで話題のMojoをGoogle Colab上で動作させる方法 - Qiita

                    Pythonと互換性を保ちつつ、非常に高速に動作することで話題のMojoをGoogle Colab上で動作させる方法PythonDeepLearningmojoGoogleColaboratory Pythonのスーパーセットとして互換性を保ちながら、驚くべき速さで実行できると話題の「Mojo」をGoogle Colab上で動作させる方法について解説します。 Mojoについては、おおまかには、以下の通りです。 Modular社は、コンパイラ基盤として広く使われているLLVM、Swift言語、GoogleがAI処理のために設計したCloud TPUなどの開発に関わってきたChris Lattner氏が共同創業者兼CEOを務める企業です。 その同社が5月に初めてMojoを発表した際に、MojoはAI処理を高速に実行するための言語だと説明しました。 MojoはPythonとの互換性によって既存の

                      Pythonと互換性を保ちつつ、非常に高速に動作することで話題のMojoをGoogle Colab上で動作させる方法 - Qiita
                    • 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:

                      • Rails: Autotuner gemでRailsアプリを高速化する(翻訳)|TechRacho by BPS株式会社

                        原注 本記事は、Rails Worldでの私の発表「Rails and the Ruby Garbage Collector: How to Speed Up Your Rails App」を元にしています。 Rubyのガベージコレクタは、短いRubyスクリプトから数百万件のリクエストを処理するアプリの実行にいたるまでスケーリング可能になるよう設計されていますが、あらゆるユースケースで最適に動作するとは限りません。このため、Rubyのガレージコレクタでは、チューニングに利用可能なパラメータを多数サポートしています(執筆時点では19個)。ただし、これらのパラメータを使いこなすには、Ruby内部におけるガベージコレクタの動作についての知識が必要です。 また、Rubyのメジャーリリースでガベージコレクタが変更されると、これらのパラメータの一部が非推奨になったり新しいパラメータが追加されたりする可

                          Rails: Autotuner gemでRailsアプリを高速化する(翻訳)|TechRacho by BPS株式会社
                        • WasmGCを試す

                          去る2023年は、WebAssemblyにGCを入れる仕様、WasmGCがChromeとFirefoxに実装された記念すべき年でした。WasmGCはコンパイラ作成者の長年の悲願であり(筆者の脳内調べ)、GCに依存する言語をWebAssembly上で動かすことを容易にします。2024年は、WasmGCがより広い環境で使えるようになることでしょう。まさにWasmGC元年と言っても過言ではありません(元年はなんぼあってもいいですからね)。 この記事は、2024年1月時点でのWasmGCの現状を、コンパイラ作成者の観点から調査したものです。筆者自身はWebAssemblyについては素人で、調べながら書いています。 概要と仕様 WasmGCの概要はChrome/V8界隈の人が書いた次の記事が参考になるでしょう: A new way to bring garbage collected program

                            WasmGCを試す
                          • https://claytonwramsey.github.io/2023/08/14/dumpster.html

                            • WebAssembly Garbage Collection (WasmGC) now enabled by default in Chrome - Chrome for Developers

                              WebAssembly Garbage Collection (WasmGC) now enabled by default in Chrome Published on Tuesday, October 31, 2023 There are two types of programming languages: garbage-collected programming languages and programming languages that require manual memory management. Examples of the former, among many more, are Kotlin, PHP, or Java. Examples of the latter are C, C++, or Rust. As a general rule, higher-

                                WebAssembly Garbage Collection (WasmGC) now enabled by default in Chrome - Chrome for Developers
                              • Garbage Collection Without Unsafe Code

                                Many people, including myself, have implemented garbage collection (GC) libraries for Rust. Manish Goregaokar wrote up a fantastic survey of this space a few years ago. These libraries aim to provide a safe API for their users to consume: an unsafe-free interface which soundly encapsulates and hides the library’s internal unsafe code. The one exception is their mechanism to enumerate the outgoing

                                • Garbage Collection for Systems Programmers

                                  Let’s talk about one of the most performance-sensitive programs you run every day: your operating system. Since every speedup gives you more computer to compute with, an OS is never fast enough, so you can always find kernel and driver developers optimizing the bejesus out of their code. Operating systems also need to be massively concurrent. Not only is your OS scheduling all userspace processes

                                    Garbage Collection for Systems Programmers
                                  • Gradual Write-Barrier Insertion into a Ruby Interpreter

                                    Gradual Write-Barrier Insertion into a Ruby Interpreter Koichi Sasada Cookpad Inc. Japan ko1@cookpad.com Abstract Ruby is a popular object-oriented programming language, and the performance of the Ruby garbage collector (GC) di- rectly affects the execution time of Ruby programs. Ruby 2.0 and earlier versions employed an inefficient non-generational conservative mark-and-sweep GC. To improve this

                                    • GitHub - Shopify/autotuner: Get suggestions to tune Ruby's garbage collector

                                      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 - Shopify/autotuner: Get suggestions to tune Ruby's garbage collector
                                      1