並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 136件

新着順 人気順

gcの検索結果41 - 80 件 / 136件

  • Node.js でメモリ肥大化の原因を特定してみた

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

      Node.js でメモリ肥大化の原因を特定してみた
    • Apache Kafkaで発生した原因不明のパフォーマンス低下と、それを解決するためにやったこと

      2019年7月17日、kafka.apache.jpが主催するイベント「Apache Kafka Meetup Japan #7」がLINE株式会社にて開催されました。分散ストリーミングプラットフォーム「Apache Kafka」に関するナレッジや最新情報を共有する本イベント。今回は4人のエンジニアが、自身や自社における知見を語りました。プレゼンテーション「Kafka Broker performance degradation by mysterious JVM pause」に登壇したのは、LINE株式会社の河村勇人氏。ある日Kafkaに起こった突然のパフォーマンス低下とその原因について、解決までの軌跡を語りました。講演資料はこちら Apache Kafkaのパフォーマンス低下とその原因 河村勇人氏:よろしくお願いします。最初に自己紹介をします。河村勇人といいます。 LINEで全社向けの

        Apache Kafkaで発生した原因不明のパフォーマンス低下と、それを解決するためにやったこと
      • 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 - 兼雑記
          • 「生成Deep Learning」は久しぶりにワクワクするAI関係の本だった - karaage. [からあげ]

            「生成Deep Learning」を読みました 生成に特化したAIの本「生成Deep Learning」を読みました。 生成 Deep Learning ―絵を描き、物語や音楽を作り、ゲームをプレイする 作者:David Foster発売日: 2020/10/05メディア: 単行本(ソフトカバー) 独創力とは、思慮深い模倣以外の何ものでもない とは18世紀フランスの哲学者ヴォルテールの言葉とのことですが、AIによる模倣と創造の境界に関して考えさせられるような本でした。 本の内容は、オートエンコーダからはじまりGANでの画像生成、文章生成、音楽生成。アテンション、強化学習の世界モデルまでとタイトル通り生成系のAI技術を幅広くカバーしています。 結構骨太で、AIの本は1冊目という人が読む本ではなくて、何冊かAI関係の書籍を読んで、ある程度自分で実践して、生成系のAI(Auto Encoderと

              「生成Deep Learning」は久しぶりにワクワクするAI関係の本だった - karaage. [からあげ]
            • 「ガベージコレクション 自動的メモリ管理を構成する理論と実装」を読んだ

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

                「ガベージコレクション 自動的メモリ管理を構成する理論と実装」を読んだ
              • Rustの所有権(ownership)を語義から理解する - igagurimk2の日記

                所有権(ownership)と借用(borrowing)とライフタイム(lifetime)はRust特有の言語仕様として有名である。 Rustではガベージコレクション(GC)を使用せずにメモリ安全性を確保するために所有権と借用とライフタイムの仕様を採用している。 この機構によって、Rustではプログラマが変数の値が有効である範囲を意識する必要がある代わりに、GCに関する実行時のオーバーヘッドがなくともメモリ安全でありスレッドセーフであるプログラムを記述することができる。 一方で、所有権は「『変数が値の所有権を持っている』というのは結局何のことなのかわからない」という混乱を生む要因でもある。 単純に考えると、変数に値が入っているのだから、変数が値を持っているのは当然のことのように思える。 そうすると、「値の所有権を持つ」とは一体何のことを言っているのかがはっきりとしなくなってしまう。 この混

                  Rustの所有権(ownership)を語義から理解する - igagurimk2の日記
                • 過去のブーム(並列プログラム)の現状を考える

                  みんな割と未来の予言はよくするが、あんまりその結果を振り返らんよなぁ。 現在のディープラーニングのブームをどう捉えるか、というか、 プログラマのキャリアという点でどう接していくか、を考えるにあたり、 過去のブームを考えてみるのは良いんじゃないか、という気がした。 最近並列GCや並行GCの章を読んでいて、 一昔前の大きなブームとしてはParallel computingがあったなぁ、と思い出した。 ということでこの事について、専門にしてなかった部外者プログラマの目にどう映ったかを記しておきたい。 なお、「XXXだと言われていた」はあんまりソースとかを確認したりはしてません。 なんとなく自分はそう聞いていた気がしたしそう思ってた、程度のものです。 かつて思っていたことと当時の状況 Parallel computingはだいたい10年くらい前の時点ではその後の大きなトレンドとして明らかに存在して

                  • GoのGCを10分で学ぼう  - Qiita

                    はじめに GoのGC(Garbage Collection)を調べる中で学んだことをなるべく分かりやすく簡潔にまとめたものです。 GCのアルゴリズムやメモリ割り当てについてまとめています。 記事内で使われている「オブジェクト」という用語はGoにおいては適切でないかもしれませんが、説明のしやすさから使用しています。 概要を把握しやすいように単純化しているため細部は正確でない部分があります。 GC基本 用語集 前提となる用語です。 ルート ルートとは、オブジェクトが到達可能か(生存しているか)を判定するための始点です。 プログラミング言語にもよりますが、基本的にメモリのスタック領域がルートになります。 フラグメンテーション フラグメンテーションとは、使用可能なメモリが断片化し途切れ途切れになっている状態です。 フラグメンテーションになってしまうと、総量的にはメモリが空いていてもアプリケーション

                      GoのGCを10分で学ぼう  - Qiita
                    • 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

                      • Google Colabで知られていないが有用な機能7選

                        連載目次 本稿ではGoogle Colaboratory(以下、Colab)に搭載されている機能の中で、あまり知られていないと思われるものを厳選して、スクリーンキャプチャ中心で紹介する。以前に「Google ColabユーザーのためのTipsトップ10」という記事を公開しているが、本稿はその第2弾という位置付けになる。 ※本稿を執筆するに当たって、公式YouTube動画「Google Colab features you may have missed(見逃しがちなGoogle Colabの機能)」と公式Twitterアカウント「@GoogleColab」の内容を参考にした。 1. インタラクティブ・テーブル(Interactive Table)による表データ探索 Pythonデータ分析ライブラリー「pandas」のデータフレーム(DataFrame)を使って表データを扱う場合、Colab

                          Google Colabで知られていないが有用な機能7選
                        • 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について予習する
                          • OpenJDKで使えるパフォーマンス分析と障害診断ツール - Qiita

                            Oracle JDKを含むOpenJDKディストリビューション(以下、JavaまたはJDK)にはJFRを筆頭にさまざまな分析ツール/仕組みがあります。 JDK7からJDK12にかけてトレンドが変わった部分もあるので、少しサマったメモを書きます。 メトリクス取得のための仕組み Javaにはパフォーマンスメトリクスを取得するための方法がいくつかあります。代表的なのは下記の3つでしょう。 JMX ログ JPLIS(javaagent) JMX Java Management Extensions(JMX)はJavaのリソース監視および管理のためのプロトコルです。簡単にいえばJava版のSNMPです。 JSR-174としてJava 1.5より取り込まれています。 Managed Bean(MBean)を利用してCPUやメモリの情報を取得したり、特定のイベント(例えば強制GC)とかを実行することも可

                              OpenJDKで使えるパフォーマンス分析と障害診断ツール - Qiita
                            • Java 11のガベージ・コレクション・チューニングガイドを読む - CLOVER🍀

                              Java 8以降になってAPIドキュメント以外をあまり見ていなかったのですが、いろんなドキュメントが見やすくなって いるんだなぁと。 JDK 11ドキュメント - ホーム で、こちらのドキュメントがちょっと気になりまして。 ガベージ・コレクションのチューニングの概要 Java 8の頃に比べると、だいぶ差が。 Java Platform, Standard Edition HotSpot Virtual Machineガベージ・コレクション・チューニング・ガイド, リリース8 どうしてこのあたりを見ているかというと、Java 9以降でデフォルトになったG1GCですがどれくらいのヒープサイズ以上が 目安なのか、どこかに書いてあったかなぁということで探してみたと。 書いてありました。 最大10GBまたはそれ以上のヒープ・サイズ(Javaヒープの50%超がライブ・データで占められている)。 ガベー

                                Java 11のガベージ・コレクション・チューニングガイドを読む - CLOVER🍀
                              • Go 1.19のメモリ周りの更新 | フューチャー技術ブログ

                                Go 1.19リリース連載の6本目です。 Go 1.19では、いくつかメモリ周りの更新がありました。1つはガベージコレクタ周りのお話と、あとはメモリモデルの更新です。 ライブラリではsync/atomic.Int64など、いくつか型が追加されました。 ガベージコレクタガベージコレクタの詳細と調整の仕方についてのドキュメント が追加されました。このドキュメントはスライダーで動作の変化がみられるインタラクティブなドキュメントになっているので、ぜひご覧ください。 「GoはJavaと違って、GCの調整ポイントがほとんどなく、最初からトップスピード(オプションの選択の中で相対的に)だよ」みたいに説明されることもありましたが、そういうわけにも行かなくなったというか、ある程度知っておく必要はあるかもしれません。とはいえ、デフォルトでも十分うまくやってくれますし、そもそも即座に終了するユーティリティでは頑

                                  Go 1.19のメモリ周りの更新 | フューチャー技術ブログ
                                • Javaのプロフェッショナルが教えるJava14とJava15の新機能

                                  LINEが定期的に開催する技術者向けミートアップ「LINE Developer Meetup」。65回目は「Java」というテーマで、JavaのカンファレンスなどでJavaの新機能について紹介しているLINEの久保田祐史氏が、Java14やJava15で利用可能な新機能と変更点について紹介しました。関連資料はこちら。 Java14やJava15で利用可能な新機能と変更点 久保田祐史氏(以下、久保田):簡単に自己紹介から始めたいと思います。LINEでソフトウェアエンジニアとして働いている久保田祐史と言います。現在はKafkaのプラットフォームを提供しているチーム内で働いています。私はよくJJUG CCCという、国内のJavaのカンファレンスでGCやJVMのセッションの他に、専らJavaの新機能について紹介することが多いのですが、今日も同じようにJava14やJava15で利用可能な新機能と変

                                    Javaのプロフェッショナルが教えるJava14とJava15の新機能
                                  • Java 14とJava 15の新機能解説 (LINE Developer Meetup #65 原稿) - unnamed

                                    Java 14とJava 15の新機能についてJJUG CCC 2020 Springで話す予定だった内容が中止になり、Java 15のリリースも近づいてきたので新たに資料を加筆修正して以下のLINE Developer Meetupで発表しました! line.connpass.com 本イベントでは話す予定ではない部分も(JJUG CCCで話す予定だったので)資料にはあり、オンラインでの発表だったということもあり原稿も準備していました。そこで折角ですので情報保障を兼ねて共有したいと思います。情報保障についてはこちらを見てみてください。 なお、今回はかなり特殊な事例であり、基本的には原稿が公開されるケースは少ないと考えています。LINE Developer Meetupでは他の分野でもスライドに書かれていない内容を聞くことができるので、ぜひイベントを聴講してみてください :) なお、スライ

                                      Java 14とJava 15の新機能解説 (LINE Developer Meetup #65 原稿) - unnamed
                                    • go gc algorithm 101

                                      Go1.20からサポートされるtree構造のerrの紹介と、treeを考慮した複数マッチができるライブラリを作った話/introduction of tree structure err added since go 1_20

                                        go gc algorithm 101
                                      • 自作コンパイラをブラウザ上で動かす | κeenのHappy Hacκing Blog

                                        このエントリは言語実装 Advent Calendar 2020の1日目の記事です。 次はsisshiki1969さんで「RustでつくるRuby、その後の進捗」です。 κeenです。 昔からちまちま作ってるSML処理系をブラウザ上で動かすことができたのでその進捗報告です。 ちまちま作ってるSML処理系とはこれのことです。 KeenS/webml: A Standard ML Compiler for the Web 今回実装したオンラインコンパイラは以下で試すことができます: WebML Online Compiler まあ、ブラウザで動くのでここに貼ることもできるんですけどね。 こういうのどうやって作ったの?っていうのを話していけたらなと思います。 設計 そもそもの話、WebMLはブラウザで動かすために設計、実装されています。 スタートから違うじゃんと思うかもしれませんが、スタートから

                                          自作コンパイラをブラウザ上で動かす | κeenのHappy Hacκing Blog
                                        • Yuta Saitoさん「RubyはWebAssemblyと出会った」 〜RubyKaigi 2022 1日目キーノート | gihyo.jp

                                          RubyKaigi 2022 キーノートレポート Yuta Saitoさん「RubyはWebAssemblyと出会った」 〜RubyKaigi 2022 1日目キーノート 9月8日から9月10日までの3日間RubyKaigi 2022が三重県津市で開催されました。今年はRubyKaigi 2019以来、3年ぶりの現地開催で非常に盛り上がったカンファレンスとなりました。 初日のキーノートではRubyコミッターのYuta Saitoさんが「Ruby meets WebAssembly」というタイトルで発表しました。 Saitoさんはインターネット上では主に@kateinoigakukunという名前で活動しており、Swiftコミッターとしてもよく知られたエンジニアです。CRubyのWebAssembly移植を進め、2022年1月にRubyコミッターとなっています。今回のキーノートはCRubyのW

                                            Yuta Saitoさん「RubyはWebAssemblyと出会った」 〜RubyKaigi 2022 1日目キーノート | gihyo.jp
                                          • 知って使えるJVMの概要とヒープダンプ取得から解析まで

                                            本連載では、Javaプログラムの実行を担うJava仮想マシン(JVM)について、その情報を取得するさまざまなツールの利用を通じて理解を深めます。JVMやそのツールに関する知識はアプリケーションが正常に動作しているときではなく、障害など異常が起こった際に大いに活躍します。それだけでなく、Javaプログラムを動作させる仕組みを知ることはソフトウェアを開発するエンジニアの皆さんの知的な部分を刺激するとともに、シニアレベルのJavaエンジニアへと進む第一歩となります。連載第1回はJVMの概要を解説し、模擬的なトラブルシュート体験としてヒープダンプを取得して解析します。 はじめに 今後もアプリケーションをJavaで開発、運用していくことを前提にすると、そうした業務に携わる方は次のようなことを学び続けるでしょう。 Javaの半年ごとのバージョンアップに追随して新機能などを学ぶ アーキテクチャなどでの新

                                              知って使えるJVMの概要とヒープダンプ取得から解析まで
                                            • 電子辞書は組み込みLinuxの夢を見るか? Ver. 2.0.0

                                              分解のススメ 第6回 2021/1/30

                                                電子辞書は組み込みLinuxの夢を見るか? Ver. 2.0.0
                                              • UberのエンジニアリングチームがGo GCのチューニングにより70kの削減に成功

                                                Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

                                                  UberのエンジニアリングチームがGo GCのチューニングにより70kの削減に成功
                                                • WebAssembly の GC Proposal とは何か / どこに向かおうとしてるのか

                                                  最初に これは WebAssembly に GC が導入されるから紹介、という記事ではない。どちらかというと、WebAssembly GC の採用がどれだけ遠く、また GC がのればどんな言語でも wasm のコンパイルサイズが減って軽量になる、という夢を見ている人に、現実を見てもらうための記事になる。 WebAssembly GC Proposal (Team)は、それを実現するパーツを分割して仕様策定を進めていて、実際に GC が動き出すまでには数年かかるだろうし、自分の感覚的に、将来的に GC が採用されるかは五分五分といったところ。 ただ、 GC Proposal から派生した仕様郡は GC が採用されなかったとしても有意義なものばかりなので、本記事ではそれを紹介したい。 基本的にここを参照 Excuse 自分は低レベルプログラミングの経験が浅く、WebAssembly のために関

                                                    WebAssembly の GC Proposal とは何か / どこに向かおうとしてるのか
                                                  • Ruby 2.7.0 リリース

                                                    Posted by naruse on 25 Dec 2019 Ruby 2.7シリーズ最初の安定版である、Ruby 2.7.0がリリースされました。 Ruby 2.7には、多くの新しい機能やパフォーマンスの改善が含まれます。 その一部を以下に紹介します。 Pattern Matching [Experimental] 関数型言語で広く使われているパターンマッチという機能が実験的に導入されました。 渡されたオブジェクトの構造がパターンと一致するかどうかを調べ、一致した場合にその値を変数に代入するといったことができるようになります。 [Feature #14912] require "json" json = <<END { "name": "Alice", "age": 30, "children": [{ "name": "Bob", "age": 2 }] } END case JSO

                                                    • LISP with GC in 436 bytes

                                                      SectorLISP now supports garbage collection. This is the first time that a high-level garbage collected programming language has been optimized to fit inside the 512-byte boot sector of a floppy disk. Since we only needed 436 bytes, that means LISP has now outdistanced FORTH and BASIC to be the tiniest programming language in the world. SectorLISP consists of 223 lines of assembly. It provides a LI

                                                      • Rubyのメモリ管理方法1: 基本概念(翻訳)|TechRacho by BPS株式会社

                                                        概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: How does Ruby manage memory? | Saeloun Blog 原文公開日: 2022/04/12 原著者: Murtaza Bagwala サイト: Saeloun Blog 本シリーズは2回に分けてお送りいたします。本シリーズの目的は、Rubyのメモリ管理の基本概念を紐解くことと、#18045で導入された可変幅アロケーション(Variable Width Allocation)によってRubyのメモリパフォーマンスがどのように向上するかを深く調べることです。 RVALUE Rubyプログラムでは、動的なメモリアロケーションにヒープ(heap)メモリを利用しており、ヒープの基本単位はスロット(slot)です。個別のスロットはRVALUEと呼ばれる値を占有します。RVALUEのサイズは40バイトで、Arra

                                                          Rubyのメモリ管理方法1: 基本概念(翻訳)|TechRacho by BPS株式会社
                                                        • 星野源が明かす、「創造」の背景にある創作へのスタンス「自分と他者との間に流れる川に橋をかける行為」

                                                          昨年「うちで踊ろう」で一大旋風を巻き起こした星野源。2010年のソロデビューからちょうど10年という節目の年に、彼らしく時代に合った形で花を添えていた。大晦日の『NHK紅白歌合戦』で新たに2番を加えたフルバージョンの歌唱も記憶に新しい。そんな彼がこの度、新曲「創造」をリリースした。 「創造」は、『スーパーマリオブラザーズ』の35周年テーマソングとして本人出演のテレビCMでも使用されている楽曲。ゲームの効果音や任天堂の作品を彷彿とさせるフレーズが散りばめられたことで、曲全体が楽しさで満ち溢れている。ゲームに心躍らせた幼い頃のみずみずしい感動が蘇るようだ。 この曲を作るにあたって彼は「久しぶりに腰を据えて作れる作品になったので生半可なものは作りたくない」と自らに高いハードルを課したという。曲に込められたマリオへの愛、影響を受けたという任天堂の物作りの精神、そして歌詞の背景にある自身の経験などを

                                                            星野源が明かす、「創造」の背景にある創作へのスタンス「自分と他者との間に流れる川に橋をかける行為」
                                                          • A Guide to the Go Garbage Collector - The Go Programming Language

                                                            Introduction This guide is intended to aid advanced Go users in better understanding their application costs by providing insights into the Go garbage collector. It also provides guidance on how Go users may use these insights to improve their applications' resource utilization. It does not assume any knowledge of garbage collection, but does assume familiarity with the Go programming language. Th

                                                              A Guide to the Go Garbage Collector - The Go Programming Language
                                                            • How We Saved 70K Cores Across 30 Mission-Critical Services (Large-Scale, Semi-Automated Go GC Tuning @Uber)

                                                              How We Saved 70K Cores Across 30 Mission-Critical Services (Large-Scale, Semi-Automated Go GC Tuning @Uber) Introduction As part of Uber engineering’s wide efforts to reach profitability, recently our team was focused on reducing cost of compute capacity by improving efficiency. Some of the most impactful work was around GOGC optimization. In this blog we want to share our experience with a highly

                                                                How We Saved 70K Cores Across 30 Mission-Critical Services (Large-Scale, Semi-Automated Go GC Tuning @Uber)
                                                              • Colab Pro/Pro+/Pay As You Goとは? 無料版との違い、比較表

                                                                2023年9月27日の最新情報に合わせて改訂しました(最初の公開は2020年3月17日)。主にGPUが選択可能になった点とColab Enterpriseの情報を追記し、全ての利用パターンで再検証して全面的に最新の内容にアップデートしました。 機械学習/データサイエンス分野で特に人気の(Pythonなどの)実行環境であるGoogle Colaboratory(以下、Colab)は無償で使えるものの、無制限ではない。実行時間やメモリ容量などに制限がある。こういった制限を低減する有償プロ版「Colab Pro」が2020年3月に発表され、米国とカナダのみで申し込みできる状況だったが、それから1年後の2021年3月19日以降、日本でも申し込み可能になった(図1)。さらに、より強力な有償プロプラス版「Colab Pro+」が2021年8月に発表され、同日から日本でも申し込み可能になり、その約1年後

                                                                  Colab Pro/Pro+/Pay As You Goとは? 無料版との違い、比較表
                                                                • Stanford CS course on data visualization techniques (Winter 2020)

                                                                  • オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )

                                                                    200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6Hironobu Isoda

                                                                      オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
                                                                    • scikit-learnで機械学習パイプラインをインタラクティブに描画、HTML保存する方法 - Qiita

                                                                      本記事では、scikit-learnのv0.23から搭載された、インタラクティブなパイプライン確認の実装、そしてそれをHTML化して保存、活用する方法を解説します。 環境 scikit-learn==0.23.2 Google Colaboratory 本記事の実装コードはこちらに置いています https://github.com/YutaroOgawa/Qiita/tree/master/sklearn 実装 [1] バージョン更新 まず、Google Colaboratoryのscikit-learnのバージョンが2020年9月ではv0.22なので、v0.23へと更新します。 !pip install scikit-learn==0.23.2 pipで更新したあとは、Google Colaboratoryの「ランタイム」→「ランタイムを再起動」を実行し、 ランタイムを再起動します。 (

                                                                        scikit-learnで機械学習パイプラインをインタラクティブに描画、HTML保存する方法 - Qiita
                                                                      • ISMM 2019 で発表してきました - クックパッド開発者ブログ

                                                                        技術部の笹田です。遠藤さんと同じく Ruby のフルタイムコミッタとして、Ruby インタプリタの開発だけをしています。 先日、アメリカのフェニックスで開催された ISMM 2019 という会議で発表してきたのと、同時開催の PLDI 2019 という会議についでに参加してきたので、簡単にご報告します。 カンファレンス会場 ISMM 2019 ISMM は、International Symposium on Memory Management の略で、メモリ管理を専門にした、世界最高の学術会議です。というと凄いカッコイイんですが、メモリ管理専門って凄くニッチすぎて、他にないってだけですね。多分。ACM(アメリカのコンピュータ関係の学会。すごい大きい)SIGPLAN(プログラミングに関する分科会。Special Interest Group)のシンポジウムになります。 発表するためには、他

                                                                          ISMM 2019 で発表してきました - クックパッド開発者ブログ
                                                                        • 記事削除 - Qiita

                                                                          3分間Perlテキストクッキングの連載開始 Perlはテキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれています Linuxサーバーで、複数行の文字列を処理、ファイル内容の検索・置換などに便利 Perlはgitやopensslなどで採用され、Linuxミドルウェアとしての実績豊富 PerlでWeb開発するエンジニア・Perl入学式サポーター

                                                                            記事削除 - Qiita
                                                                          • Dumpster diving the Go garbage collector

                                                                            Principal Engineer @ New Relic, Founding Engineer @ Pixie Labs Go is a garbage collected language. This makes writing Go simpler, because you can spend less time worrying about managing the lifetime of allocated objects. Memory management is definitely easier in Go than it is in, say, C++. But it’s also not an area we as Go developers can totally ignore, either. Understanding how Go allocates and

                                                                              Dumpster diving the Go garbage collector
                                                                            • 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

                                                                              • Cloud Runで動くJVMの監視にログベースの指標が便利 - 株式会社ヘンリー エンジニアブログ

                                                                                株式会社ヘンリーでSREをやっているTODA(@Kengo_TODA)です。弊社ではGoogle Cloud Platform(GCP)を活用してサービスを構築しており、またサーバサイドにはKotlinを利用しています。Cloud Runで動くJVMサービスの監視にログベースの指標が便利だったので紹介します。 何をもってJVMで駆動するサービスを「メモリが足りていない」と判断するか Cloud Runのメモリ監視で最も利用しやすいのは、Cloud Monitoringでメモリ利用率などを見ることでしょう。次に示す図のように、サービスごとのデータを取ってグラフ化できます。 図1 メモリ利用率をプロットしてみた ではこのグラフから何がわかるのでしょうか?例えば下側に紫色で示されたCloud Runサービスはメモリにずいぶんと余裕がありそうです。常時この状態であれば、メモリ割当量を減らしても良さ

                                                                                  Cloud Runで動くJVMの監視にログベースの指標が便利 - 株式会社ヘンリー エンジニアブログ
                                                                                • ごみ集めのない (頭の悪い) LISP

                                                                                  ごみ集めのないLISP 2020年5月 第17回関西Lispユーザ会 @zick_minoh 頭の悪い

                                                                                    ごみ集めのない (頭の悪い) LISP