Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 126件

新着順 人気順

GCの検索結果1 - 40 件 / 126件

GCに関するエントリは126件あります。 プログラミングメモリprogramming などが関連タグです。 人気エントリには 『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

    • 電子情報学特論:Chromiumのアーキテクチャを解き明かす

      電子情報学特論: Chromium のアーキテクチャを解き明かす 〜 EEIC の授業が生きるプロダクトの世界〜 Kentaro Hara 2020 April (๑>ᴗ<๑) * * * *

        電子情報学特論:Chromiumのアーキテクチャを解き明かす
      • 20 年代のフロントエンド.md

        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

          20 年代のフロントエンド.md
        • プログラミング言語の未来はどうなるか | κeenのHappy Hacκing Blog

          κeenです。最近JEITAのソフトウェアエンジニアリング技術ワークショップ2020に参加したんですが、そこで五十嵐先生、柴田さん、Matzとパネルティスカッションをしました。その議論が面白かったので個人的に話を広げようと思います。 年末年始休暇に書き始めたんですが体調を崩したりと色々あって執筆に時間がかかってしまいました。 時間を置いて文章を書き足していったので継ぎ接ぎ感のある文体になってるかもしれませんがご容赦下さい。 というのを踏まえて以下をお読み下さい。 いくつか議題があったのですが、ここで拾うのは一番最後の「プログラミング言語の未来はどうなるか」という話題です。 アーカイブが1月末まで残るようです。もうあと数日しかありませんが間に合うかたはご覧下さい。 そのとき各人の回答を要約すると以下でした。 五十嵐先生:DSLを簡単に作れる言語というのが重要。それとプログラム検証、プログラム

            プログラミング言語の未来はどうなるか | κeenのHappy Hacκing Blog
          • git gc の仕組みを原理から理解してサイズを 136MB → 7.2MB(95%減)まで削減した時の勉強メモ

            個人用メモです。 「git gcってあんまし容量減らないよなぁ」 と思ったのが動機です。調べたけどパッと腑に落ちる記事がなかったので「自分で git のソースコード見た方がいいな」と急にモチベ発動してグワっと勉強しました。またついでに歴史改変の方法も調べたのですが、公式で既に WARNING が出てるほど非推奨化されてるfilter-branchを使用してる記事が多かったので、2021 年現在で多分一番推奨されてるfilter-repoを使ってやる方法もまとめました。 ちなみに容量減らしても高速化するかというとそこまで単純ではないです。そもそも減らさなくても partial clone で blob オブジェクトを必要最低限に指定して昔の blob をデフォルトで持ってこないようにしたり(--no-checkoutと併用するとより効果有る)、その後本当に自分が必要なやつだけ sparse-

              git gc の仕組みを原理から理解してサイズを 136MB → 7.2MB(95%減)まで削減した時の勉強メモ
            • 電子情報学特論:Chromiumのアーキテクチャを解き明かす

              電子情報学特論: Chromium のアーキテクチャを解き明かす 〜 EEIC の授業が生きるプロダクトの世界〜 Kentaro Hara 2022 April (๑>ᴗ<๑) * * * *

                電子情報学特論:Chromiumのアーキテクチャを解き明かす
              • 【JS/ Python両方OK!】「データ可視化」が歴史から実装まで体系的に学べるStanford講座の独習ノート - Qiita

                【JS/ Python両方OK!】「データ可視化」が歴史から実装まで体系的に学べるStanford講座の独習ノートJavaScriptd3.jsデータ分析データサイエンスcolaboratory CS 448B Visualization (2020 Winter)は、Maneesh Agrawala氏による、Stanford大で行われた、データの可視化に関する体系的な講義です。 スタンフォード大の"CS 448B Visualization (2020 Winter)" がすごい。 データ可視化の体系的講義。どう図表に変換するかの理論、探索的データ分析、ネットワーク分析等の実践と盛り沢山。 スライドに加え、Observable(JavaScript), Colab(Python)どちらでも例を試せる。https://t.co/lGyPElrihg pic.twitter.com/mWZn

                  【JS/ Python両方OK!】「データ可視化」が歴史から実装まで体系的に学べるStanford講座の独習ノート - Qiita
                • ブラウザにおけるメモリリークを解決するために読んでおけると良い資料 - mizdra's blog

                  最近趣味や仕事の Web アプリケーションでメモリリークに遭遇して、頑張ってメモリリークの原因を突き止めて修正する、ということがあった。その過程でメモリリークについて色々調べて知見が溜まったので、学習資料の紹介という形でアウトプットしてみる *1。 前置き 紹介する記事がかなり偏っていることに注意 冒頭で触れたメモリリークを解決するために読んだ記事をまとめただけなので、内容にそれなりの偏りがある 例えば id:mizdra が遭遇したメモリリークは全てブラウザ上で発生していたものだったので、これから紹介する内容も主にブラウザにおけるメモリリークに焦点を当てたものになる GC がどうメモリをどう解放しているか、何故メモリリークが発生するのかは全てカット 調べれば色々な記事が出てくるので、必要に応じて読んでください 基本的な知識を抑える まずメモリリークとメモリ撹拌の違いを学ぼう どちらも同じ

                    ブラウザにおけるメモリリークを解決するために読んでおけると良い資料 - mizdra's blog
                  • chrome devtools の tips N連発 - mizdra

                    mizdra.icon が社内向けに発表した資料なのですが、折角なので一般向けに書き直して公開します。

                      chrome devtools の tips N連発 - mizdra
                    • TOMCAT殺害事件 - Qiita

                      OOMKillerの殺意 顧客EC2のTomcatがアクセスの無い早朝にもかかわらずOOMKillerに突然殺されてしまったので、調査した顛末をたぶん同じような問題に直面されている方もおられるかと思いますので備忘録として記載します。 Javaヒープのチューニングにも多少役立つかと思います。 (この記事はJava8が対象となります。) OOMKillerとはOut of Memory時に、サーバ全体を守るためにメモリーを消費しているプロセスを停止するLinuxの標準機能です。 そのOOMKillerになんとTomcatが突然殺害されてしまいました。 問答無用の辻斬り状態です。 早朝ですのでアクセスログには何も記録されておらず、catalina.outには OpenJDK 64-Bit Server VM warning: Setting LargePageSizeInBytes has no

                        TOMCAT殺害事件 - Qiita
                      • Colabで動かすStableDiffusion実装|深津 貴之 (fladdict)

                        自分がつかってる、Google Colab用StableDiffusion環境を公開しました。 海外のWEB UIのが重いのと、やりたいことが微妙に違うので自分なりに作った。公式のDiffuserを使わないので軽いです。無課金のcolabでも動くのではないかと思います。 使い方GitHubページの「Open in Colab」ボタンをおして、colabで開く。 このページ上部のメニューで、「ランタイム > ランタイムのタイプを変更」からGPUを有効化を確認 HuggingFaceでアカウントを作成 StableDiffusionのモデルページで、「利用規約」に合意する。 モデルファイル sd-v1-4.ckpt をダウンロード モデルファイルを Google Drive等にアップロード 下のセル 「1-1. Google Driveとの接続」を実行 下のセル 「1-2. のフォーム」に、G

                          Colabで動かすStableDiffusion実装|深津 貴之 (fladdict)
                        • なぜDiscordはGoからRustへ移行するのか - MISONLN41's Blog

                          DiscordがGoで書かれていたコンポーネントをRustに移行しているらしい。Windowsの低レイヤ層の一部で採用されるなど、近年どんどん注目を集めているRustだが、DiscordはなぜRustを選んだのか。その最大の特徴である「パフォーマンスを妨げる要素であるGCを排した上でメモリセーフな言語」であることにクローズアップした面白い内容だったので、えっちらおっちら和訳してみた。英語が得意というわけでもなく、無理やり翻訳しているところも多いのであしからず。ほとんどGoogle翻訳のままというのは内緒。 追記: 7/31にはてブでいっぱいブックマークされたみたい。気になったブコメへの返信を末尾に追記した。 原文: Why Discord is switching from Go to Rust - Discord Blog Rustは様々な分野において第一級の言語になりつつあります。Di

                            なぜDiscordはGoからRustへ移行するのか - MISONLN41's Blog
                          • Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog

                            情報を発信する人のところに情報が集まることを日々実感しているので、Linuxのメモリ管理に特に詳しいわけではないのですが最近遭遇した問題について自分の理解を書いておきます。ざっと調べても同じことを書いている人を見つけられなかったので、公開には意義があると考えています。識者の方がフィードバックをくださると嬉しいです。 ※ AIの出力をベースに書いているのでいつもと少し文体が違います。 背景 要約 調査 再現の難しさ Goアプリケーションの調査 pprofによる分析 GCログの調査 Linuxの調査 Goランタイムの調査 GoのGCとTHP khugepagedの問題 Goランタイムにおける回避策 回避策の削除 max_ptes_noneのデフォルト値について MADV_NOHUGEPAGEをやめた理由 調査内容まとめ 解決策 検証 C言語 Go言語 まとめ 背景 Go言語で書かれたOSSのア

                              Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog
                            • JVM入門
 -Javaプログラムが動く仕組み-

                              2019/11/23 JJUG CCC 2019 Fall - 日本Javaユーザーグループ 登壇資料です。

                                JVM入門
 -Javaプログラムが動く仕組み-
                              • Rustのメモリ管理機能とその特徴

                                初出:技術評論社刊「ソフトウェアデザイン 2021年9月号」 先日、技術評論社よりRustのメモリ管理機能についての特集に寄稿させて頂きました。 この記事は自分が寄稿させていただいた記事をブログ用に一部推敲・加筆を加えたものです。 なお、ソフトウェアデザインでの特集ではより実践的な例でのメモリ管理についての解説もあるので、興味のある方は本誌のほうも手にとっていただければと思います。 プログラム言語におけるメモリ管理の課題プログラミングにおける課題の一つとしてどうやってメモリ領域(ヒープ領域)を管理するかというものがあります。 C言語ではmalloc/free関数などを用いて手動でメモリを管理しています。 これらの関数はメモリアドレスを示すポインタを介してメモリ管理を行います。 malloc関数は必要なメモリ領域を確保してその先頭番地のポインタを返し、プログラム内ではその番地のメモリを読み書

                                • Go コンパイラのコードを読んでみよう - kosui

                                  はじめに 本記事は、 DeNA Advent Calendar 2020 の 11 日目の記事です。 突然ですが、「コンパイラのコードを読んでみよう」なんて言われても、「どうせ巨大で難解で複雑なロジックを理解しないと読めないんでしょ?」と思いませんか。 コンパイラの構造を理解しようとしても聞いたことのないような専門用語がずらりと並び、コードを読もうとしたらそれらをすべて完全に理解してないと一行も理解できないんじゃないか...。Go のコンパイラ gc のソースコードを読むまでは、私もそう思っていました。 しかし、あまりにも暇な休日のある日、思い立って gc のコードを読んでみました。すると、「コンパイル」という難解な響きの処理も、一つひとつを小さなタスクに分解することで、少しずつ読み進めることができると分かったのです! 何よりも感動したことは、 gc そのものが全て Go で書かれていて、

                                    Go コンパイラのコードを読んでみよう - kosui
                                  • 実装言語を「Go」から「Rust」に変更、ゲーマー向けチャットアプリ「Discord」の課題とは

                                    ゲーマー向けの無料音声テキストチャットアプリケーション「Discord」を開発、提供するDiscordは2020年2月5日(米国時間)、アプリケーションを支える基盤サービスの一つである「Read States」をRust言語で再実装し、その結果サービスのパフォーマンスが大幅に向上したと公式ブログで明らかにした。 Read StatesサービスはこれまでGo言語で実装されていた。それにもかかわらず、なぜRead StatesをRustで再実装しようとしたのか、どのように再実装したのか、再実装によってどのようにパフォーマンスが向上したかを解説した。 Rustで再実装した背景とは Read Statesサービスの目的は、Discordユーザーがどのチャンネルのどのメッセージを読んだのかを追跡することだ。つまり、ユーザーがDiscordに接続したり、メッセージを送信したり、メッセージを読んだりする

                                      実装言語を「Go」から「Rust」に変更、ゲーマー向けチャットアプリ「Discord」の課題とは
                                    • 【2023年版】機械学習の日本語無料学習教材まとめ - Qiita

                                      言語&開発基礎編 PythonやSQLなどの言語と開発環境に関連することをまとめました。 機械学習に関する教材はこの次のセクションにまとめてあります。 学習環境 インストール及び使い方チュートリアルのサイトと、ある程度使い慣れた後に役立つtips集を各エディタでまとめました。 Google Colaboratory Python初学者にとって最もわかりやすいPython実行環境です。プログラミングは初めて!という方はまずこのGoogle Colaboratory(通称: Colab)から始めてみて、使い方がある程度わかったら、そのまま次のセクションのPython編に移りましょう。 Pythonプログラミング入門 難易度: ★☆☆ 東京大学の公開しているPython講座ですが、冒頭でColabの使い方を解説しています。使ったことのない方はこちらから! Google Colabの知っておくべき

                                        【2023年版】機械学習の日本語無料学習教材まとめ - Qiita
                                      • Discord Blog

                                        How to Make Your Discord Messages Bold, Italic, Underlined & Tons More

                                          Discord Blog
                                        • Ruby 2.7のここがすごい! パターンマッチ、コンパクションGCなどをリリースマネージャーに聞いた - エンジニアHub|Webエンジニアのキャリアを考える!

                                          Ruby 2.7のここがすごい! パターンマッチ、コンパクションGCなどをリリースマネージャーに聞いた 2019年12月25日にリリースされたばかりのRuby 2.7では、どのような機能がどういった経緯で採用されているのでしょう。リリースマネージャーのnaruseさんと、フルタイムコミッターのmameさんに詳しくうかがいました。 まつもとさんはとにかく忙しくて 実はすごいirbの改良 パターンマッチはRubyをどう変えるか キーワード引数は、端的に壊れていたのを大整理した 高速化に向けたいくつかの観点 Ruby 2.7で導入される「コンパクションGC」とは Ruby 3のビジョンは「静的解析」「並行並列」「JIT」 プログラミング言語Rubyには、クリスマス前後に新しいバージョンをリリースする伝統があり、2013年の2.1.0以降は毎年12月25日にメジャーバージョンアップが行われています

                                            Ruby 2.7のここがすごい! パターンマッチ、コンパクションGCなどをリリースマネージャーに聞いた - エンジニアHub|Webエンジニアのキャリアを考える!
                                          • Rubyの並列並行処理のこれまでとこれから - クックパッド開発者ブログ

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

                                              Rubyの並列並行処理のこれまでとこれから - クックパッド開発者ブログ
                                            • 『スマブラDX』の人気大会が、米任天堂の勧告により中止へ、「#FreeMelee」運動に発展。鮮明に現れた“非公認ツール”をめぐる価値観の違い - AUTOMATON

                                              歴史ある『大乱闘スマッシュブラザーズ』大会が、米国任天堂の勧告を受けて中止に追い込まれたようだ。12月4〜6日にオンライン大会を控えていた「The Big House」は11月20日、イベントを取りやめることを発表した。背景には大会に用いられようとしていた“非公認ツール”の存在があるという。 「The Big House」は2011年より続く、アメリカ・ミシガン州における『大乱闘スマッシュブラザーズ』シリーズの大会だ。世界的なプレイヤーが集う国際大会として知られており、昨年大会では国内選手のザクレイ氏が『大乱闘スマッシュブラザーズ SPECIAL』部門で優勝を果たしている。例年秋の開催を恒例としているものの、今年は新型コロナウイルスの影響を鑑みて延期に。加えて、本年より初のオンライン大会への移行を発表していた。 大規模大会がオンライン化することは昨今の情勢において珍しいことではない。しかし

                                                『スマブラDX』の人気大会が、米任天堂の勧告により中止へ、「#FreeMelee」運動に発展。鮮明に現れた“非公認ツール”をめぐる価値観の違い - AUTOMATON
                                              • 画像から簡単に精巧な3D写真が作成できる論文が公開される、実際に3D写真を生成することも可能

                                                RGBに「奥行き(Depth)」情報を加えた「RGB-D」画像から、立体的な写真である「3D写真」を生成する方法を研究者チームが提案しています。たった1枚の写真から精巧かつ立体的な3D写真が手軽に生成可能ということで話題になっています。 3D Photography using Context-aware Layered Depth Inpainting https://shihmengli.github.io/3D-Photo-Inpainting/ RGB-D画像から3D写真を生成する方法を開発したのは、国立清華大学の大学院生でありバージニア工科大学にインターンシップ中のMeng-Li Shih氏、バージニア工科大学の大学院生であるShih-Yang Su氏、Facebookリサーチで働くJohannes Kopf氏、バージニア工科大学の助教であるJia-Bin Huang氏ら4人です

                                                  画像から簡単に精巧な3D写真が作成できる論文が公開される、実際に3D写真を生成することも可能
                                                • クラウドネイティブ環境におけるJavaチューニングの進め方 〜 20,000rpsをさばく超PayPay祭の事例

                                                  ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、ショッピング統括本部の川口です。 本記事では、2022年2月から3月にかけて開催された超PayPay祭の事例をもとに、クラウドネイティブ環境におけるJavaチューニングの進め方について解説します。 本記事の内容は2022年6月19日に開催された、JJUG 2022 Springで発表した内容をベースにしています。 Yahoo!ショッピングにおける超PayPay祭は高負荷 超PayPay祭は全国のPayPay加盟店とオンラインショップでお得に買い物をお楽しみいただける大規模キャンペーンです。Yahoo!ショッピングにおいても、PayPayポイントがもらえるキャンペーンなどさまざまなお得な施策が実施されます。超PayPay

                                                    クラウドネイティブ環境におけるJavaチューニングの進め方 〜 20,000rpsをさばく超PayPay祭の事例
                                                  • Rust の 所有権、借用、ライフタイムについて初心者目線で説明と整理を試みる

                                                    自分のブログを辿ってみたところ Rust を 2020 年には書いているようだが、初心者を名乗らせていただく。なぜならブログのネタにする以外で Rust 書いたことないし、これも調べながら書いているからだ。もっと練習したい、どこかに Rust を書ける機会ないかな〜チラッチラッ 👀 なぜありふれていそうな題材で書くか 題材はありふれているし解説もたくさんあるが、それらを読んで理解できるのか?という疑問がある。というのも、所有権、借用、ライフタイム自体についての説明は至る所で見るが、これらが無いと何が大変なのか、導入することで何が解決されるかがよく分からないと思うからだ。勿論、そのような点まで解説してくれているものもたくさんあるが、正直なところ Not for Me だった。何が Not for Me だったかというと、C++ の知識やコンピュータサイエンスの知識があることが前提になってい

                                                      Rust の 所有権、借用、ライフタイムについて初心者目線で説明と整理を試みる
                                                    • Javaエンジニアだった私が当時困ったRustのコンセプト - paild tech blog

                                                      お手伝いの @helloyuki_ です。今回はポエムです。 今回は、Rust を始めた当時、プログラミング言語は Java しかまともに触ったことがない新米若手 Java エンジニアだった私[*1]が「見たことがなく、使いどころがわからなく理解が難しい」と感じたポイントについて紹介します。対象とするソフトウェアのレイヤーが低いか高いかを問わず、とにかく Rust をやってみて理解するまでに時間がかかり、難しいと感じたポイントについて紹介します。 Rust の「メモリ安全」って、結局何 所有権とライフタイム 参照 スマートポインタ 代数的データ型 関数が第一級である モジュールシステム self 型クラスという側面でのトレイト まとめ 私が Rust をある程度使いこなせるようになるまでの話 「難しい」って何?、の話 Rust の「メモリ安全」って、結局何 そもそも論ですが、Rust が取

                                                        Javaエンジニアだった私が当時困ったRustのコンセプト - paild tech blog
                                                      • Nimを知ってほしい2022

                                                        Nimを知ってほしいという記事があり、Nimを知らなかった人々向けに最初の紹介として大変な貢献をしてくださりました。 しかしまだNimを使ったプロダクトというのも少なく、競プロではチラホラ見かけるものの、人々の中にある意識としては「気になっています」という域を越えられていないのも事実です。 そこで今回は企業での意思決定をする人や、5年以上の経歴があるエンジニア向けに、Nimを書いてみようと感じてもらうことを目的に、先日私が登壇したみんなのPython勉強会#79 『Pythonistaに伝えたいNimの魅力』に加筆して投稿してみたいと思います。 Nimって何? 2008年から開発が始まった新しいプログラミング言語です。 「Pythonに型が付いて、Goみたいに高速に、バイナリになってOSの実行環境に依存しないで動いてくれる言語ないかな〜」という全プログラマーの夢を叶えてくれる言語です。 書

                                                          Nimを知ってほしい2022
                                                        • BigQueryを分かりやすく! ハンズオンで始めるGoogle Cloudのデータ分析サービスと可視化ツールの使い方|ハイクラス転職・求人情報サイト AMBI(アンビ)

                                                          ハイクラス求人TOPIT記事一覧BigQueryを分かりやすく! ハンズオンで始めるGoogle Cloudのデータ分析サービスと可視化ツールの使い方 BigQueryを分かりやすく! ハンズオンで始めるGoogle Cloudのデータ分析サービスと可視化ツールの使い方 Googleの高度な技術を利用できるGoogle Cloudにおいて、BigQueryは大規模データをスケーラブルに分析できるフルマネージドなデータウェアハウスとして提供されています。株式会社タイミーでデータエンジニアを務める土川稔生さんが、初心者向けのハンズオンとともにBigQueryの基本を解説します。 はじめまして。株式会社タイミーでデータエンジニアをしている土川(@tvtg_24)です。 タイミーでは、Google Cloudのデータ分析サービスであるBigQueryを中心に、データ基盤を構築しています。BigQu

                                                            BigQueryを分かりやすく! ハンズオンで始めるGoogle Cloudのデータ分析サービスと可視化ツールの使い方|ハイクラス転職・求人情報サイト AMBI(アンビ)
                                                          • Javaの現状:世界で最も人気のあるプログラミング言語の一つであるJavaの動向とデータ

                                                            成功者がどのようにNew Relicを使用してKubernetesのパフォーマンスを4倍に向上させ、拡張性とスループットを改善したかをご覧ください。

                                                            • MVCCとInnoDBでの実装について - shallowな暮らし

                                                              こんにちは。id:shallow1729です。先日はredo logを中心にストレージエンジンについて解説を行いましたが、今回は同時実行制御、特にMySQLなど多くのデータベースで採用されているMultiversion Concurrency Control(MVCC)という技術にフォーカスしようと思います。 今回の記事ではまず前半でMVCCというものがどういうものかについて解説をして、次にMVCCの実装方法についてInnoDBの実装を参考にしながら見ていこうと思います。前提知識はあまりいらないと思いますが、リレーショナルデータベースの操作経験はあったほうがいいかなと思います。また、前回のストレージエンジンの解説で述べた内容はあまり説明しないので、軽く目を通してもらえると頭に入りやすいかなと思います。 shallow1729.hatenablog.com トランザクションの原子性 まずトラ

                                                                MVCCとInnoDBでの実装について - shallowな暮らし
                                                              • GoはいつGCするのか?

                                                                TL;DR Go(のランタイム)は以下のタイミングで自動的にGCを実行する 前回のGC後に占有していたメモリと同量を新たに確保したとき 前回のGCから2分後 cgroupなどでメモリ制限しているときは、メモリ使用量が制限の50%以上になったらruntime.GC()を呼び手動でGCすべきである 前置き: GoとOOMのこれまで 以下はGo 1.16での調査結果です。Goのバージョンが異なった場合は事情が異なる可能性があります。 Goでプログラムを書く際に、使用メモリ量を気にしなければならないシーンはGCのおかげでそう多くはありません。実際それは間違いではないのですが、運用まで視野に入れるとそうは言ってられないことがあるのもまた現実です。昨今はコンテナの利用が当たり前になったことに伴い、OOMによりプロセスが強制的に終了させられることもあり、それを避けるために一定量以下のメモリで動くことが重

                                                                  GoはいつGCするのか?
                                                                • 不要な処理が実行速度を速くする謎を追う - Money Forward Developers Blog

                                                                  こんにちは。 id:Pocke です。マネーフォワードでは Rails を用いた Web アプリケーションの開発と、RBS という Ruby の静的型システムの開発を行っています。 最近 RBS の開発をする中で、「不要な処理を削除すると実行速度が遅くなる」という不思議な現象に遭遇しました。この記事ではその現象を解説しようと思います。 なおこの記事は Ruby の知識を前提としないように執筆されており、Ruby の知識が必要となるところには注釈を加えて補足しています。 普段 Ruby を書かない方にも読んでいただければ幸いです。 問題を引き起こした変更 今回の問題は、RBS のメモリ使用量の削減を行っている中で遭遇しました。まずはどんな変更を行おうとしていたかを解説します。 変更の動機 最近私は RBS のメモリ使用量の削減に取り組んでいます。1 その取り組みの中で、RBS のパーサーが作

                                                                    不要な処理が実行速度を速くする謎を追う - Money Forward Developers Blog
                                                                  • WEB+DB PRESS連載記事「Rubyのウラガワ」を期間限定で無償公開(公開終了)

                                                                    新型コロナウイルスの影響で多くの学校が休校する状況を受け,『WEB+DB PRESS』で笹田耕一氏が執筆しており,現在も連載中の「Rubyのウラガワ」の第1回から第5回までの記事のPDFを,学習用に期間限定で無償公開します。 記事の概要やダウンロード先などは以下のとおりです。 記事名 Rubyのウラガワ ─⁠─ Rubyインタプリタに学ぶデータ構造とアルゴリズム 記事概要 本連載では,Rubyインタプリタという,実際に多くの人が利用しているアプリケーションを題材にしてデータ構造とアルゴリズムを学ぼうという趣旨で,その実装を紹介します。単なる実装の紹介だけではなく,なぜそのような選択をしているか,その背景を紹介できればと思っています。(⁠Vol.110「連載のはじめに」より) 公開範囲 Vol.110(第1回⁠)⁠~Vol.114(第5回) 公開期限 2020年4月5日まで ※期限が過ぎまし

                                                                      WEB+DB PRESS連載記事「Rubyのウラガワ」を期間限定で無償公開(公開終了)
                                                                    • Apple M1の参照カウントは本当に速いのか - yamasaのネタ帳

                                                                      Apple M1に関して以下のようなツイートが話題になった。 18/ Another "magic" trick is how their "Swift" programming language uses "reference counting" instead of the "garbage collection" in Android. They did something in their CPU to double the speed of reference counting.— Robᵉʳᵗ Graham😷, provocateur (@ErrataRob) 2020年11月26日 fun fact: retaining and releasing an NSObject takes ~30 nanoseconds on current gen Intel, and ~6.

                                                                        Apple M1の参照カウントは本当に速いのか - yamasaのネタ帳
                                                                      • GoのGC (garbage collector)について理解する

                                                                        NOT A HOTEL TECH TALK ーSOFTWARE 3.0への道筋ー NEXT Web3 (2024-08-07)

                                                                          GoのGC (garbage collector)について理解する
                                                                        • WebAssemblyにガベージコレクション機能が登場、Chrome 111で試験的実装に。Dartなど高級言語のWebAssembly対応へ前進

                                                                          WebAssemblyにガベージコレクション機能が登場、Chrome 111で試験的実装に。Dartなど高級言語のWebAssembly対応へ前進 WebAssemblyのガベージコレクション機能が、Chrome 111 Devリリースにおいて試験的実装を示すOrigin trialとして実装されることが分かりました。 WebAssemblyのガベージコレクション機能はまだ仕様策定段階ですが、試験的機能として実装が登場することで仕様策定の作業などが進むと同時に、いわゆる高級言語でのWebAssembly対応が広がることも期待されます。 WASM GCはChromeのフィーチャーフラグで有効化 ChromeブラウザにはStable、Beta、Dev、Canaryなど、開発の段階に分かれた複数のリリースチャンネルがあります。 現在リリースされているChrome 111 Devリリースチャンネル

                                                                            WebAssemblyにガベージコレクション機能が登場、Chrome 111で試験的実装に。Dartなど高級言語のWebAssembly対応へ前進
                                                                          • 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 でメモリ肥大化の原因を特定してみた
                                                                              • Javaのスペシャリストが教える、Java9からJava14で細かく変更された機能

                                                                                LINEが定期的に開催する技術者向けミートアップ「LINE Developer Meetup」。65回目の は「Java」というテーマで、JavaのスペシャリストであるLINE Fukuoka株式会社のきしだなおき氏が、Java 9から14での細かい機能変更について紹介しました。関連資料はこちら。 Java9からJava14までの4つの細かい仕様変更 きしだなおき氏(以下、きしだ):よろしくお願いします。僕のセッションでは「Java9からJava14までをおさらいをする」という話をします。 自己紹介ですが、きしだと言います。LINE Fukuokaで働いていて、最近7年ぐらい放置していた洗濯機をやっと買い替えて、「文明って便利だな」と思っているところです。 今日の話ですが、Java9からJava14まで、けっこういろいろな変更が積み重なっていて、大きい言語仕様の変更などはけっこう話題になる

                                                                                  Javaのスペシャリストが教える、Java9からJava14で細かく変更された機能
                                                                                • PEP 703 - 兼雑記

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

                                                                                    PEP 703 - 兼雑記

                                                                                  新着記事