概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Performance impact of the memoization idiom on modern Ruby | Rails at Scale 原文公開日: 2024/02/14 原著者: Jean Boussier(byroot) Ruby 3.2における主要な内部変更のひとつに、オブジェクトシェイプ(object shape)の導入があります。 本記事では、オブジェクトシェイプが導入された理由、仕組み、制限事項について解説します。 🔗 オブジェクトのインスタンス変数はどのように保存されるのか Rubyは非常に動的な言語なので、インスタンス変数へのアクセスという単純な操作でも多くの作業を伴います。 Rubyオブジェクトは、ほとんどの場合インスタンス変数を「参照の配列」に保存します。 たとえば、インスタンス変数を2個持つ
こんにちは。フィナンシャル開発センターの鈴木です。LINE証券のフロントエンドを担当しています。この記事は【LINE証券 FrontEnd】シリーズの4番目の記事です。 最近のWeb Vitalsの隆盛を受けて、LINE証券のフロントエンドでもパフォーマンスの改善に取り組み始めました。およそ2週間ほど改善に取り組んだ結果として、開発環境での計測ではLighthouseのperformanceスコアが従来より30点ほど上昇しました。 パフォーマンス改善のためにさまざまな施策を行いましたが、この記事ではその中でも興味深かったものとして、requestIdleCallbackを活用してLazy Loadingされるコンポーネントの読み込みを遅延し、その結果初期レンダリングにかかる時間を約14%削減できた事例をご紹介します。 環境 以前の記事でご紹介したとおり、LINE証券のフロントエンドはTyp
The One Billion Row Challenge in Go: from 1m45s to 3.4s in nine solutions March 2024 Go to: Baseline | Solutions | Table of results | Final comments I saw the One Billion Row Challenge a couple of weeks ago, and it thoroughly nerd-sniped me, so I went to Go solve it. I’m late to the party, as the original competition was in January. It was also in Java. I’m not particularly interested in Java, but
これはなに どうも、レバテック開発部のもりたです。 今回はSQLチューニングをする上で欠かせない実行計画の読み方についてまとめます。この手の情報、インターネットに無限に資料あるんですが、全ての項目を上から読んでいくとマジで目が滑ってなにも頭に入ってこないので、それぞれの関係性がわかりやすい形で整理します。また、公式ドキュメントには言葉足らずな箇所もあるため、そちらも補足しています。 なお、対象とするRDBMSはMySQLです。また、インデックスの解説や実際のチューニングのコツ等は扱っていません。 実行計画の取得方法 いちおう記載しておきますが、実行計画の取得方法は以下の通りです。 -- 実行計画を見たいクエリの前にEXPLAINと書くだけ EXPLAIN SELECT ...(略)... ; -- 結果 -- こんな感じで出る。表示のされ方は使っているクライアントアプリ次第 /* # id
Million Lint is in public betaAiden Bai (opens in a new tab), John Yang (opens in a new tab), Nisarg Patel (opens in a new tab) – February 29, 2024 It’s launch time. After three months and hundreds of commits, we invite you to try out Million Lint. The experience is not finished – there are a few known bugs and several missing features – but we are really happy with how it's shaping up and couldn'
By Jose Fernandez Today, we are thrilled to announce the release of bpftop, a command-line tool designed to streamline the performance optimization and monitoring of eBPF programs. As Netflix increasingly adopts eBPF [1, 2], applying the same rigor to these applications as we do to other managed services is imperative. Striking a balance between eBPF’s benefits and system load is crucial, ensuring
大手ハイテク各社は世界中に巨大データセンターを建設しているが、それによって引き起こされる二酸化炭素排出量の大幅な増加の回避にも躍起になっている。 多くの電力を消費する人工知能(AI)がクラウド化されるのに伴い、太陽光発電や風力発電に余剰がある地域をソフトウエアを使って探し出し、そこでデータセンターの運営を強化するという手法も広がりつつある。二酸化炭素排出量とコストを削減することが可能になるからだ。 クラウドコンピューティングの管理を手掛けるシーラス・ネクサスの共同創業者で最高経営責任者(CEO)を務めるクリス・ノーブル氏は「再生可能エネルギーを最大限に利用するやり方でデータセンターを運営する方法を見つけ出すことが急務だ」と語った。 AIが必要とするコンピューティングがもたらす気候変動リスクは広範に及び、化石燃料を使用する電力からクリーンな電力への大幅な転換がなければ一段と悪化する恐れがある
「ブレイン メンタル 強化大全」こちらの本、読みました。 本書の著者である樺沢紫苑さんの本は今回が初です。 ちょうど本書を読んでいた頃に、いつも聴いているポッドキャストに樺沢さんがゲスト出演していました。 なんだかタイミングが良かったです。 ポッドキャストのリンクは後ほど貼ります。 なお、本書の読書感想は「前編」「中編」「後編」の3つに分けて投稿しようと思います。 今回は前編としてアレコレ書いていきます。 本の内容 いくつか引用と感想 仕事のパフォーマンスが著しく低下する(睡眠不足のデメリット②) 食欲が暴走し、4倍太る(睡眠不足のデメリット③) 睡眠改善の最強プラン おわりに 関連記事 本の内容 まずはAmazonから本の内容を抜粋します。 ブレイン メンタル 強化大全 作者:樺沢紫苑 サンクチュアリ出版 Amazon 総フォロワー50万人の人気精神科医が贈る、 心と脳のヘルスケア・決定
IntroductionIn this article we're going to optimize Stable Diffusion XL, both to use the least amount of memory possible and to obtain maximum performance and generate images faster. We will be able to generate images with SDXL using only 4 GB of memory, so it will be possible to use a low-end graphics card. We're going to use the diffusers library from Hugging Face since this blog is scripting/de
データベースとテーブルの作成 テスト用のデータベースtestdbを作成し、パフォーマンスチューニングを検証するためのcompanyおよびpersonテーブルを定義します。 CREATE DATABASE testdb; USE testdb; CREATE TABLE company ( company_id INT AUTO_INCREMENT PRIMARY KEY, company_name VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE person ( person_id INT AUTO_INCREMENT PRIMARY KEY, company_id INT, person_name VARCHAR(255) NOT NULL, email VARCH
When Zed was open-sourced, someone on HackerNews commented that Sublime Text is faster when searching for all occurrences of the current word in a buffer. Zed takes 1s and Sublime somewhere around 200ms. Searching all occurrences means: you position your cursor over a word, you hit cmd-shift-l and all occurrences of that word in the current buffer are selected and you get a cursor at each occurren
Node.jsのメモリ制限については以下の記事に記述があります。 しかし、現在の挙動はやや異なるようです。 結論から言うと デフォルトでは、システム (cgroup等) から取得した制限があればそれがそのまま設定、そうでなければ32bit環境では700MiB, 64bit環境では1400MiBの制限が設定されます。 V8のメモリ制限 Node.jsはJavaScriptエンジンとしてV8を利用しています。 V8のGCは世代別GCになっています。ほとんどのオブジェクトは生成されてすぐに不要となるため、メモリ使用量にはそれほど貢献しません。メモリ使用量に貢献するような長命なオブジェクトは、数回のGCを生き抜いた後old generation領域に移されます。したがって、V8のメモリ使用量の制限は実質的にこのold generation領域のサイズ制限によって決まると考えてよいでしょう。 このo
アプリケーションに多くのユーザーが同時にアクセスすることで、障害が発生する危険性がある。そうした需要に対応する準備が整っていることを確認することは重要だ。本稿では、負荷テストのベストプラクティスにPythonを利用できる箇所と、アプリケーションを適切に準備する方法を解説する。 アプリケーション開発チームは負荷テストを実施することで、少なくとも所定の負荷値まではアプリケーションが想定通りに機能することを保証できる。だが、負荷テストを重視しない開発チームがあまりにも多い。 開発者がスポットチェックを行ったり、パフォーマンスを高めるコーディング手法を採用したりすることは可能だ。だが、予期しないユーザー負荷が原因でサーバがロックすると、企業もユーザーも不意を突かれることが多い。負荷が高過ぎてアプリケーションが機能しなくなるのは恥ずべきことだ。 そこで、本稿では、負荷テストのベストプラクティスにPy
こんにちは!技術部プラットフォームグループのharukin, pochyです。 この記事では、「ISUCON」を模したパフォーマンスチューニング研修を複数社合同で実施した概要と、そのための準備について紹介します。 研修について 目的 今回の研修の目的は次のものとしました。 パフォーマンスチューニングの問題を会社横断でチームを組成し取り組むことで、サーバサイドやインフラのパフォーマンス・チューニングを中心に幅広い知識を総動員して課題解決に望む。 課題解決過程のコミュニケーションを通じて、会社の枠を超えた同期作りを促進する。 概要 今回の研修では、チームごとにパフォーマンスチューニングの課題に挑戦しました。 実際のISUCONのように、各チームにwebサーバーを貸し出す形式です。各チームはそのアプリケーションを時間内にパフォーマンスチューニングし、最適化された度合いによってチームに点数をつけま
市販電気自動車の実用的な電費性能を確かめる「東名300km電費検証」シリーズ企画を始めたい。第1回は、BYDが「コンパクトEVの決定版」と謳う『ドルフィン』の電費計測を行った。厳寒期である1月の計測となったため電費を伸ばすには厳しい状況だったのだが、果たしてその結果は!? 「東名300km電費検証」企画について 航続距離が「短い」とされる電気自動車の真の実力を炙り出すため、勾配もカーブもある高速道路で「生きた」電費を計り、読者の皆さんの参考になるデータや事実を導き出したいという試みだ。これから様々な車種で同様に検証していくが、まずは基本ルールを説明しておこう。 【計測方法】 高速道路でACC(アダプティブ・クルーズ・コントロール)を使用し、80km/h、100km/h、120km/hの各速度で巡航した電費を計測する。ACCを使用することで、誰でも一定速走行を実現しやすく、読者の皆さんの再現
▼ はじめに 本日は満席の運びでこれはどうも わたくし株式会社 Belong で Engineering Manager をしている七色メガネと申します いやはや九月になったというのにまだまだ暑いですねえ と言ってお天道様を憎む勇気もないしがない路傍石でございますから やれ異常気象だのやれ二季の到来だの世間様と足並み揃えてあちらで騒ぎこちらで踊りなどをしておるわけですけれどもええ 氷菓片手に暦をチラとみてみますと、今は暦の上では立秋といい秋の始まりに片足を突っ込んでいるというですから驚きです とはいえ九月の中頃まで続く暑さのことを残暑という慣わしは古くからあるそうで 立秋という言葉が涼の到来を表すものではないというのは昔から続くものというのはなんともおかしな話ではありますなあ 立という言葉から私は立てば芍薬、の句を連想しましたがそれをもじりまして一つ 立てば灼熱座れば炮烙歩く姿は湯気の中
こんにちは、配配メール開発エンジニアのhiro_jiです。 突然ですが、負荷テストの進め方ってイメージできますか? ある程度経験があれば難なく進めることができると思いますが、そうでない場合はそもそも進め方のイメージが湧きづらいかと思います。 かくいう私も最初は何から手を付ければよいか分からなかった記憶があります。。。 そこで今回は負荷テスト初心者の方向けに、私の所属するチームで実施している手順を紹介します! 負荷テストとは? 負荷テストのフロー 全体像 方針検討 詳細計画 テスト準備 テスト実施 評価 分析・チューニング おわりに 負荷テストとは? 本題に入る前に、負荷テストとは何かについて軽く触れておきます。 負荷テストとは、特定の条件下でシステムやアプリが示す性能を評価、検証するものであり、運用中の障害を未然に防いだり、パフォーマンスの問題やボトルネックを改善するために非常に重要な役割
WebアプリケーションのUIの表現はどんどんリッチになってきています。しかしその一方でブラウザ上での描画の負荷は増大し、時としてスムーズに動かず体験を損ねることもあります。ユーザーにとって使い心地の良いUI体験はフロントエンドのパフォーマンスチューニングに大きく委ねられていると言えるでしょう。 スタートアップ開発を支援する株式会社Gaji-Laboでは、サービスの価値に直結するエンドユーザーの体験向上のため、快適なUIを提供する事をとても大切にしています。 この記事では、快適に動くUIを作るため、フロントエンドフレームワークのマジョリティであるReactとどう付き合っていくべきかを考えていきましょう。 Reactの仕事を理解するまず、Reactがどんな仕事をしているのかを理解するところからはじめましょう。Reactの主な仕事はUIを描画すること、そして必要に応じてそれを再描画することです。
デプロイ頻度とリードタイムは、開発チームが自らのパフォーマンスをモニタリングするうえで欠かせないメトリクスである。それらが、収益性や市場占有率といった組織パフォーマンスに影響を与えるからだ。その調査結果は、DevOps Research and Assessment(DORA)が特定した4つのキーメトリクス、いわゆる「DORAメトリクス」の要素として浸透した(後述するが、DORAメトリクスで扱うのは、リードタイムではなく「変更のリードタイム」である)。 その重要性ゆえに、チームや組織はこれらのメトリクスの計測と可視化に努める。可能な範囲で正確な値が欲しい。そうして、チケット管理ツールやバージョン管理システムからテレメトリを収集、集計し、チームのモニタリングダッシュボードにその実績値を可視化するのだ。 しかし、しばらくメトリクスを運用してみると、その扱いづらさに気づく。計測値や集計値のばらつ
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く