並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 769件

新着順 人気順

高速化の検索結果121 - 160 件 / 769件

  • なぜReactは標準でComponentをmemo化しないのか?

    はじめに 普段はスタートアップでBtoB SaaSの開発をしているtaroと申します。 今回は、Reactのmemo化について考えている中で抱いた 「なんでReactは標準でComponentをmemo化していないんだろう?」 という疑問を解消するために、色々と調べたり考えたりした内容をまとめました! 途中でrenderのタイミングや、memo化で再renderが抑えられる理由などの前提知識の復習も含めていて、memo化について詳しくない方もmemo化の勉強にもなると思うので、ぜひぜひ読んでみてくださいー! なぜこんな疑問を抱いたのか? まずはそもそも僕がタイトルにあるような疑問を抱いた背景です。 疑問を抱くまでの思考プロセスはこんな感じです。 「再renderが余分に走ってて画面が重いから最適化したいなー」 →「React.memo()を使ってComponentをmemo化しよう!」 →

      なぜReactは標準でComponentをmemo化しないのか?
    • perfを用いたシステムのボトルネック解析方法

      背景システムの処理速度を改善するために、ボトルネック解析を行う必要があった。 ボトルネック解析の方法と、プロファイリングに使用したperfの使用方法に関して調査を行った。 記事の目的perfを使用し、ボトルネック解析を行う ここでは、perfの導入方法及び使用方法について記載する。 perfとはperf(Performance analysis tools for Linux)とはLinuxカーネル2.6.31以降で使用可能なLinuxの性能解析ツールである。 実行されているプロセス毎のCPU使用率やプロセス内で呼ばれている関数の割合などを調査できる。 利点gprofのように、プログラム作成時に専用のライブラリを入れたり、コンパイル時にオプションをつける必要がない フレームグラフにして、ビジュアライズできる 導入方法(Ubuntu編)Ubuntu16.04へperfを導入する手順について記

        perfを用いたシステムのボトルネック解析方法
      • ほんの少しHTMLを変更して検証したい時 – TravelBook Tech Blog

        本番のサイトを眺めていて、「あーここのHTMLこうしたら、もっと速くなるのになー」って思う時ありますよね。 僕はあります。でも、検証するだけのために、プロダクトのコードを直接いじるのは大げさ。 そんな時に、wgetとmirrorというコマンドを使ってページをダウンロードして「ほんの少し」HTMLを変更しています。 紹介します(追記にLocal Overridesという「そのものズバリな」Chromeの機能も紹介してます)。 最近あった話です。特にCore Web Vitalsとか速度改善について。 トラベルブックのとあるページのスコアが落ちていて、Chrome DevToolsで観察してみると、どうもYouTubeの埋め込が足を引っ張っている。 表示領域外にも関わらずiframeの中身がロードされています。 これは直したい(本来なら本番へ上げる前に気づく仕組みを作りたいのですが、一旦置いて

          ほんの少しHTMLを変更して検証したい時 – TravelBook Tech Blog
        • サーバレス時代の負荷テスト戦略 〜CircleCIで実現する継続的負荷テストとチューニングTips〜 - Qiita

          負荷テストとサーバレス 負荷テストに対する考え方は時代とともに変化してきました。従来はサーバスペックやシステムの限界性能を測るという考え方でしたが、クラウドネイティブなシステムではそれに加えて、システムの弾力性(スケールアウトのしやすさ)も考慮する必要があります。 本記事では、負荷テストによるシステムの弾力性の評価と、改善する方法についてツールの具体的な使用方法やアプリケーションのチューニング Tips を交えて説明します。システムの弾力性を評価するために、プロダクション環境でのユーザからのリクエストを想定したロードテストを検討します。 ロードテストでは以下の項目を検証します。 ドリップテスト ドリップテストは通常、数日間にわたって行われます。通常のバックグラウンド負荷レベルをシミュレートします。遅延またはエラー率の増加が見られる処理を特定します。 スラムテスト スラムテストは、トラフィッ

            サーバレス時代の負荷テスト戦略 〜CircleCIで実現する継続的負荷テストとチューニングTips〜 - Qiita
          • 受取期限の過ぎたデータをMySQL上から削除する話 | GREE Engineering

            こんにちわ。せじまです。今回は地味で泥臭い話をします。ただ、割と平易な内容かと思いますので、初学者の方にもオススメです。 はじめに ゲームでは、受取期限のついたログインボーナス的なものがよくあります。ユーザが期限までに受け取らないと、ユーザからそのデータは不可視になりますが、必ずしも、不可視になった瞬間にデータベースから直ちに削除される、というわけでもありません。バッチジョブか何かで、ガベージコレクションのように削除するケースが多いのではないでしょうか。 また、論理削除という概念もあります。論理削除についてはいろいろ意見や考え方があるかと思いますので、ここでそれについては論じませんが、「削除フラグが立ってユーザから不可視になった後、三ヶ月以上経過したデータを削除したい」みたいなことは、ゲームに限らず、しばしばあるんじゃないかなと思います。 こういった、ユーザから不可視になってしばらく経過し

              受取期限の過ぎたデータをMySQL上から削除する話 | GREE Engineering
            • High Performance FastAPI

              PyCon JP 2021 発表資料です。

                High Performance FastAPI
              • クラウドネイティブ環境における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祭の事例
                • 詳解 システム・パフォーマンス 第2版

                  本書は、エンタープライズとクラウド環境を対象としたオペレーティングシステムとアプリケーションのパフォーマンス分析と向上について解説します。 主にLinuxベースのオペレーティングシステムに含まれるツールとその使用例を通じてシステムパフォーマンスを引き出す手法を説明します。システム評価のためのベンチマーク、キャパシティプランニング、ボトルネックの解消について解説しスケーラビリティを制限する要因を発見、分析し、解決する方法を学びます。 第2版では、perf、Ftrace、BPFの解説が加わり、Linuxとクラウドコンピューティングについての説明が充実しました。 システムのパフォーマンスを向上させ、コストを削減し、レイテンシの外れ値を減らすための方法を学ぶ本書はエンジニア必携の一冊です。 まえがき 1章 イントロダクション 1.1 システムパフォーマンス 1.2 職種 1.3 作業 1.4 分析

                    詳解 システム・パフォーマンス 第2版
                  • 「プログラマーのためのCPU入門」は入り口として丁度よい!

                    Google Analytics でサイト速度を計測する / Measure site speed with Google Analytics

                      「プログラマーのためのCPU入門」は入り口として丁度よい!
                    • モダンWebパフォーマンス2020_株式会社ニジボックス Yuki Irisawa

                      リクルートグループ主催!『大規模メディアにおけるWeb開発の最前線』 https://business-and-creative.connpass.com/event/188628/

                        モダンWebパフォーマンス2020_株式会社ニジボックス Yuki Irisawa
                      • Hotwireとは何なのか?

                        はじめに HotwireはBasecampが発表した、モダンなWebアプリケーションを作るための新しいアプローチです。名前もHTML OVER THE WIREから来ているように、HotwireではHTMLをサーバーから送ります。「それ普通のWebアプリケーションでは?」と思う方もいるかもしれませんが、SPA + APIサーバでJSONが使われるのに対し、SPAと同様の体験をHTMLを中心に置いて作るアプローチであることを示す表現です。 僕個人は、最初は「ふ〜ん」という感じだったんですが turbo-railsを読みつつHotwireのデモアプリをPhoenixに移植してみたり WebSocketではないTurbo Streamsのsourceを作ってみて遊んだり と、ある程度触ってみて良さが理解できてきたので、Hotwireを使うと何が嬉しいのか、Hotwireの各要素の紹介を記事として

                          Hotwireとは何なのか?
                        • PythonでC/C++に匹敵する実行速度を実現 米MITなどコンパイラ「Codon」開発

                          Innovative Tech: このコーナーでは、テクノロジーの最新研究を紹介するWebメディア「Seamless」を主宰する山下裕毅氏が執筆。新規性の高い科学論文を山下氏がピックアップし、解説する。Twitter: @shiropen2 Pythonは人気な言語だが、実行速度が遅いため、速さを求められる環境になると違う言語が採用される。この研究では、Pythonのような高水準言語のシンプル性とCやC++のような低水準言語の高速性を兼ね備えることができるPythonベースのコンパイラ「Codon」を提案する。 Codonは、Pythonのコードをネイティブなマシンコードにコンパイルするコンパイラであり、シングルスレッドにおいて通常のPythonよりも10倍から100倍速く実行され、CやC++に匹敵する速度を実現できるという。またCodonではマルチスレッドも可能なため、より大きな性能向上

                            PythonでC/C++に匹敵する実行速度を実現 米MITなどコンパイラ「Codon」開発
                          • GraphQLサーバを作る苦しみと解決手法

                            吉祥寺.pm23 https://kichijojipm.connpass.com/event/182287/

                              GraphQLサーバを作る苦しみと解決手法
                            • 動画生成AIについて:一番星はてのは目をゆっくり開き、踊れるか

                              Krita の AI Diffusion プラグイン、SD のインターフェースとしてかなり良い。話題の LCM によるライブペイントも便利だし、イラストレーションツールだからレイヤーや選択ツールが使えるのが強い。すでに SD でできたことだが、こんな感じの変換が素早く、気持ちよく行える。https://t.co/bUPOZrKs1n pic.twitter.com/0hn8iMHHms — Naoto Yokoyama (@builtinnya) November 18, 2023 これらを ControlNet8 で入力して AnimateDiff を使えば済むと考えていたが、甘かった。 動画生成 AI に期待しているのは、この2枚の画像の間のフレームを説得力のある形で補間することである。しかし、7秒という長さでは、例えば次の動画1のようになってしまう。 動画1. 図1と図2を使い、パラ

                                動画生成AIについて:一番星はてのは目をゆっくり開き、踊れるか
                              • ネットワーク パフォーマンスの解読: TCP と UDP のバルクフローのベンチマーク | Google Cloud 公式ブログ

                                Gemini 1.5 モデル をお試しください。Vertex AI からアクセスできる、Google のもっとも先進的なマルチモーダル モデルです。 試す ※この投稿は米国時間 2024 年 6 月 22 日に、Google Cloud blog に投稿されたものの抄訳です。 Google Cloud ネットワーキング チームは長年にわたり、お客様のネットワークの構築、修正、強化の支援に深く携わってきました。その間に、ネットワークのパフォーマンスと効率を最大限に高める重要なパターンやベスト プラクティスを発見しました。この豊富な知見は、ただの理論的なリソースではありません。Google Cloud、クロスクラウド、オンプレミス、その他のクラウド プロバイダなどデプロイ先を問わず、お客様のビジネス目標達成を支援するよう設計された実用的なツールキットです。Google はこの専門知識を共有する

                                  ネットワーク パフォーマンスの解読: TCP と UDP のバルクフローのベンチマーク | Google Cloud 公式ブログ
                                • Linuxサーバーの最適化: vmstatとiostatを活用した性能分析と対処法 - Qiita

                                  Linuxサーバーの最適化: vmstatとiostatを活用した性能分析と対処法 0.目的 インフラ開発者として、必須な性能分析を身につけることを目的としています。 カーネルパラメータをチューニングをする際に性能分析を前提とし、分析結果からチューニングしていきますが、具体的な指標というものが少ないので参考になれば幸いです。 基本的なvmstatの使い方については、ちょっとググればいくらでも出てくるので割愛します。 「Linuxカーネルパラメータのチューニング&設計」でロードアベレージが高い状態にある場合、次のアクションとしてCPU使用率の確認が必要となりますので、vmstatの結果分析および対処法について深堀していきます。 よって、vmstatの結果分析と対処法を理解すると性能試験を実施した際のその対処法とカーネルパラメータによるチューニングする対象が理解できるかと思います。 1.パフォ

                                    Linuxサーバーの最適化: vmstatとiostatを活用した性能分析と対処法 - Qiita
                                  • Webパフォーマンス高速化とこれからのアーキテクチャ

                                    CoreWebVitalsにINP(Interaction to Next Paint)が追加され、Webパフォーマンスに関するする技術は年々進化を遂げています。 このセッションでは、INPへの対策の他、BFCache、Private Prefetch Proxy、Priority Hintsなど、現…

                                      Webパフォーマンス高速化とこれからのアーキテクチャ
                                    • JS のビルドサイズを極限まで絞るための TIPS 集

                                      ビルドサイズ限界まで絞りたい人向け。 あらゆる環境で実践するものではないが、知ってたら簡単に避けることができるのもあるので知っておくと便利なTIPS書いていく。 基本ポリシー 未使用コードはビルド時に全部落とす。 何が未使用コードで、何が定数かわかるようなインターフェースを人間が心がける。 用語 Dead Code Ellimination(DCE) Rollup や Terser で、未使用コードを削除すること

                                        JS のビルドサイズを極限まで絞るための TIPS 集
                                      • Zennで発生した障害の原因と行なった対策のまとめ

                                        2021/02/24の11時頃〜1時間ほどzenn.devにアクセスしづらい・アクセスできない問題が発生していました。その後も3時間ほど一部のページへのアクセスができない状況となっていました。Zennに投稿してくれた方、見に来てくれた方、ご迷惑をおかけしてすみませんでした。 今回の障害は学びが多かったので、個人の記事として残しておくことにします。 原因 今回の障害は、使用しているクラウドサービスではなく、Zenn自体に原因がありました。 1. KaTeX記法により生成されるHTMLが思った以上に大きかった ZennのマークダウンエディターではKaTeX記法をサポートしています。例えば、$a\ne0$と書くとa\ne0と表示されます。 KaTeXはサーバーサイドレンダリングをサポートしており、KaTeX記法からの数式のHTMLへの変換はサーバーサイドで行なっていました。DBにはマークダウンだ

                                          Zennで発生した障害の原因と行なった対策のまとめ
                                        • Linux Performance

                                          static, benchmarking, tuning: sar, perf-tools, bcc/BPF: bpftrace, BPF book: Images license: creative commons Attribution-ShareAlike 4.0. This page links to various Linux performance material I've created, including the tools maps on the right. These use a large font size to suit slide decks. You can also print them out for your office wall. They show: Linux observability tools, Linux static perfor

                                          • 実践 9 つのメモリリークどう見つける?/ How to detect 9 types of memory leaks?

                                            iOS Test Online 2022/10/28 https://testonline.connpass.com/event/261910/

                                              実践 9 つのメモリリークどう見つける?/ How to detect 9 types of memory leaks?
                                            • Cloudflare、NGINXに代えて自社開発のRust製HTTPプロキシ「Pingora」をグローバルCDNに採用。性能向上しつつCPUとメモリ消費を3分の1に

                                              Cloudflare、NGINXに代えて自社開発のRust製HTTPプロキシ「Pingora」をグローバルCDNに採用。性能向上しつつCPUとメモリ消費を3分の1に CDNプロバイダのCloudflareは、同社のグローバルなCDNの基盤として長らく利用してきたNGINXに代えて、同社自身がRust製のHTTPプロキシである「Pingora」を開発し利用していることを明らかにしました。 Pingoraはすでに同社のCDNに採用され、毎日1兆回以上のリクエストを処理し、性能向上や数多くの新機能の提供を実現しつつ、従来と比較してCPUとメモリリソースの消費はいずれも3分の1程度に収まっているとのこと。 Pingoraは現時点でコードなどは公開されていませんが、いずれオープンソース化の計画についても明らかにするとCloudflareは説明しています。 Today we are excited t

                                                Cloudflare、NGINXに代えて自社開発のRust製HTTPプロキシ「Pingora」をグローバルCDNに採用。性能向上しつつCPUとメモリ消費を3分の1に
                                              • Linuxカーネルパラメータのチューニング&設計 - Qiita

                                                Linuxカーネルパラメータのチューニング&設計 0.目的 【カーネルパラメータのチューニング】を修得する目的は、サーバの特性を理解し、それぞれに合ったカーネルパラメータのチューニングすることでリソースの有効活用をできるようになることを目的とし、私個人の経験を元にした見解を以下の記事に掲載します。 1.最初に サーバには、それぞれ必要なリソース特性があり、それに合わせたカーネルパラメータのチューニングが必要となります。 世の中の流れはオンプレよりクラウドに移行してはいるので、カーネルパラメータのチューニングよりスケールアップなりスケールアウトするなりの対応をすべきなのでしょう。 ですが、カーネルパラメータのチューニングを知らないとどちらを選択すべきかも理解しずらいと思いますので軽率には出来きません。(待ち行列理論もしらないといけませんが) また、最近のLinuxはデフォルト値が大きくなって

                                                  Linuxカーネルパラメータのチューニング&設計 - Qiita
                                                • A Visual Guide to React Rendering - Cheat Sheet

                                                  When does react component re-render? What can cause the re-render, and how to prevent unnecessary renders? Here is a quick cheat sheet you can refer to whenever you find yourself asking these questions. This article serves as a table of contents for a Visual Guide to React Rendering series. Every section of the cheat sheet links to the correspondent chapter of the guide that explores a topic in de

                                                    A Visual Guide to React Rendering - Cheat Sheet
                                                  • node.js のメトリクスの計測、ベンチマークの改善、Docker イメージの絞り方を勉強した

                                                    フロントエンドのパフォーマンス計測は得意なのだが、サーバーサイド node.js のメトリクスの取り方はあまり知らなくて、いつも勘でやりがちだった。最近は業務でこの周辺で困ることが増えたので、勉強しなおした。 また、最近使ってみたかった cloudflare workers の制限で、メモリ 128MB、CPU 時間 50ms という制約があり、このためにも Node.js の CPU のメトリクスを計測できるようになっておく必要があった。 という目的を踏まえて、今回は OS やデータベースの最適化は扱わず、ネットワークとアプリケーション層だけに絞って学習した。あと仕事の Docker イメージのサイズにも悩んでたので、ここも。 (あと ISUCON 参加者が楽しそうだったのもある。 ISUCON のチューニング対象にフロントエンドは含まれないので…) 計測対象 今回実験したリポジトリはこ

                                                      node.js のメトリクスの計測、ベンチマークの改善、Docker イメージの絞り方を勉強した
                                                    • Rails appをRubyコードの改善だけで50%以上高速にした話 - Money Forward Developers Blog

                                                      この記事は Money Forward Engineering 2 Advent Calendar 2022 18日目の投稿です。 こんにちは。マネーフォワード関西開発拠点でマネーフォワード クラウド会計Plus (以下会計Plus)のエンジニアをしているぽっけです。 この記事では、私が行った高速化について紹介します。 私は最近Railsアプリケーションの高速化を行っており、ある画面のレスポンスタイムを50%以上削減しました。そしてこの改善はRubyレベルの変更のみで達成しました。 この記事での「Rubyレベルの変更のみ」は、MySQLやRedis、Web APIなどへのアクセスには全く手を入れず、Rubyのプロセスが消費する時間のみを変更した、ということを意図しています。 MySQLなどへのアクセスは通常ボトルネックになりがちな箇所です。今回そこに手を入れずに高速化を達成できたのは、1つ

                                                        Rails appをRubyコードの改善だけで50%以上高速にした話 - Money Forward Developers Blog
                                                      • 「FastCopy」のファイルコピーが9倍に!? 「Microsoft Defender」除外オプションが追加/Windowsプラットフォームで最速を謳うファイルのコピー・削除ツール

                                                          「FastCopy」のファイルコピーが9倍に!? 「Microsoft Defender」除外オプションが追加/Windowsプラットフォームで最速を謳うファイルのコピー・削除ツール
                                                        • GitHub における大規模なモノリポのパフォーマンスの向上

                                                          GitHub は、毎日 5600 万人以上の開発者にサービスを提供し、2 億以上のリポジトリをホストしています。これらのリポジトリのごく一部を除いて、世界中の顧客に驚くべきパフォーマンスでサービスを提供しています。 GitHub のような大規模なシステムでは、コードとアーキテクチャのずれというのは限界に達したときに初めて見つかるものです。例えば、何千人もの開発者が毎日同じリポジトリを更新するといったケースです。GitHub は、大規模なモノリポを使用する一部の顧客から、プッシュ操作が失敗するといったパフォーマンスの問題が発生しているというフィードバックを受けました。 そして、それは GitHub においても発生していました。 github/github は GitHub のモノリポですが、私達自身も時々プッシュに失敗することがありました。 調査を開始するにあたり、私たちは社内のチームや顧客

                                                            GitHub における大規模なモノリポのパフォーマンスの向上
                                                          • MySQLでUUIDv4をプライマリキーにするとパフォーマンス問題が起きるのはなぜ?(N回目)

                                                            はじめに こんにちは、令和トラベルでバックエンドエンジニアをしている飯沼です。 MySQLでは、UUID (v4)などのランダム性の高いIDをプライマリキーに設定すると、パフォーマンスが低下すると言われています。私自身もこの問題については認識しておりアンチパターンとして避けて来ましたが、イマイチ理由を理解できず何度も調べていたので自分の理解を整理しました。 ※ この記事は令和トラベルのTech LT会で共有した内容を記事にしたものです。社外の方にもご参加いただけるTech LT会は connpass にて告知しています。 UUIDをプライマリキーにするユースケース そもそもUUIDをプライマリキーにするユースケースはどのようなものがあるのでしょうか? いくつかの観点から考えてみます。 パフォーマンス観点 大量の同時書き込みが発生するような状況でauto incrementを利用してIDを発

                                                              MySQLでUUIDv4をプライマリキーにするとパフォーマンス問題が起きるのはなぜ?(N回目)
                                                            • オレ的EXPLAIN技を語っちゃうゾ - Qiita

                                                              メリークリスマス 本記事はPostgreSQL Advent Calendar 2021の25日目です。今年も面白い記事がたくさん揃いましたね!!! さて、みなさん今年のPostgreSQLライフはどんな感じでしたでしょうか? 私はというと、なんだかチューニングばっかりやってました。1案件でいろいろお手伝いすることはまあまああったのですが、複数から次々チューニングの相談をもらって、歴代継承者の個性を発現したデクくんのごとく駆け回ったのが今年のハイライトです。 (この綱渡り感、、、伝われ!!!) 俺たちは雰囲気でチューニングしている 今回上手くいったけど、あの時たまたまひらめいた1案をぶつけてみたら効果でたのであって、次善の策なんてなかったけど??って毎回思ってるから、雰囲気でやっていると思う、マジで。コミュニティのノリだと笑いが起きていいんですけど、少しでも勝率を上げるために、若手の前でド

                                                                オレ的EXPLAIN技を語っちゃうゾ - Qiita
                                                              • [初級編] なぜ「AWS で負荷分散は3AZ にまたがるのがベストプラクティス」と言われるのか 可用性の面から考えてみた | DevelopersIO

                                                                みなさん、AWS使ってますか!(挨拶 AWSに限らず、ある程度の規模の何かしらの本番システムを組もうというときに、こういう言葉を聞いたことはないでしょうか。 「負荷分散装置の下に並べる分散先 (サーバ) は3台以上がよい」 「AWS であれば3アベイラビリティゾーン (AZ) にまたがるとよい」 負荷分散装置(ロードバランサー)は負荷を分散するのがお仕事です。分散するだけなら 2 台でもよさそうですよね? AWS の3 AZ に至っては、そもそも AZ 単位の障害なんてそうそうないし、あったとしてももう片方の AZ が生きていればなんとかなりそうに思えます。 これがどういうことか、少し考えてみました。 おさらい:負荷分散装置と可用性の関係について まずはおさらいです。 負荷分散装置(ロードバランサー)は単純化していえば、その名前の通りひとつの名前(FQDN)へのアクセスを複数のサーバに分散

                                                                  [初級編] なぜ「AWS で負荷分散は3AZ にまたがるのがベストプラクティス」と言われるのか 可用性の面から考えてみた | DevelopersIO
                                                                • Webサービスエンジニアが教えるサーバサイドのログ分析 情報を可視化して負荷状況を見よ

                                                                  ログ分析勉強会は、日々の業務に役立てられる「ログ分析」についての情報交換を目的として活動しています。オンライン開催となった今回、AWSに詳しい山口氏がWebサービスのパフォーマンス改善に必要なログ分析について、日々の業務から得た知見を共有しました。後半は、サーバーサイドから見たログ分析について。 サーバ情報を可視化して負荷状況を見る 続いて、サーバの負荷状況を見るところですね。リソースの情報をコマンドで取得してサーバ情報を可視化しましょうというところです。 よく使うのは、1つ目はhtopですね。htopでプロセスごとにどれくらいのメモリやCPUを使っているかを取っていくのがあります。リクエストが多いときにこれを取っていって、どこが重たくなっているかを見るというのがいいかなと思っています。 例えばアプリケーションサーバと同梱されているものだったりとかすると、アプリケーションサーバの負荷がいき

                                                                    Webサービスエンジニアが教えるサーバサイドのログ分析 情報を可視化して負荷状況を見よ
                                                                  • explainだけじゃわからない!MySQLのindexの考え方 - BASEプロダクトチームブログ

                                                                    はじめに こんにちは、バックエンドエンジニアのSakiです!バックエンドでPHPを書いたり、PHPという言語そのもののメンテナーもしています。 この度、注文データダウンロードAppのパフォーマンスをアップさせるため、とても入念にデータベースまわりの処理を見直しました。その中でも特に速度に関わってくる「index」についての考え方をまとめたいと思います。 この記事はMySQL(InnoDB)についての記事であり、他のRDBについては当てはまらない場合もあるということにご注意ください。 indexとは何か、おさらい ご存知の方ももちろん多いと思いますが、indexについておさらいさせてください。 indexとは辞書でいうところの目次に相当するもので、目的のデータをいち早く検索するために重要なものです。もし辞書に目次が存在しなかった場合、目的の情報を探すのにとても苦労するだろうというのは想像しや

                                                                      explainだけじゃわからない!MySQLのindexの考え方 - BASEプロダクトチームブログ
                                                                    • 「自分でLLMを動かすことでイメージがつきやすくなる」 ローカルで使うメリットと、日本語特化LLMを動かすために必要なスペック

                                                                      システムから言語モデルがどのように使えるか、その時どういうことに気をつける必要があるかを考える「『ChatGPTなどの言語モデルはどのようにシステムで使えるか』きしだなおき氏」。ここで、LINE Fukuoka株式会社のきしだなおき氏が登壇。続いて、システムがChatGPTをどのように使うかと、日本語特化のLLMについて話します。 システムはChatGPTをどのように使うか きしだなおき氏:今、人間がどう使うかという話を中心に話しました。(次に)じゃあシステムからどう使うかとなると、APIを使った利用になりますね。 今日(2023年6月14日時点)朝起きたら「関数定義が可能になったよ」みたいなものが出ていて。今回の(セッションで話した)概要(の内容)とか…。(この概要は)昨日になってやっと(運営に)送ることができたんですけど、「どういう話をしようか」と思って朝起きたら、毎日状況が変わってい

                                                                        「自分でLLMを動かすことでイメージがつきやすくなる」 ローカルで使うメリットと、日本語特化LLMを動かすために必要なスペック
                                                                      • MySQL(InnoDB)のSQLパフォーマンスチューニングのエッセンス

                                                                        はじめに MySQL(InnoDB)でSQLのパフォーマンスチューニングをするときに役に立つ知識をエッセンスとしてまとめました。結合(JOIN)やB-treeインデックスの探索の仕組み、実行計画の基本的な見方を紹介します。 想定する読者は、SQLのパフォーマンスを改善する必要があるが実行計画をみてもいまいちピンと来ない方です。インデックスの作成の経験や、複合インデックスやカーディナリティの知識があることを前提にしています。目標は、実行計画の内容がよく分からない読者が、実行計画をみただけでクエリが実行される様子をイメージでき、自信を持ってクエリの改善にあたることができるようにすることです。 ストレージエンジンはInnoDBを前提としています。また、インデックスはB-treeインデックスを想定しています。全文検索の転置インデックスや空間検索のR-treeインデックスについては触れません。 イン

                                                                          MySQL(InnoDB)のSQLパフォーマンスチューニングのエッセンス
                                                                        • GYAO!トップページの表示パフォーマンス改善 〜 GraphQLアーキテクチャへの移行

                                                                          ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、映像サービスプロダクト本部の浜田(@narirow)です。 GYAO!では最近トップページの大規模な変更が行われました。本記事では映像サービスのバックオフィスを含む大規模な構成変更と、その成果として得られたスケーラビリティ・ページの表示速度の向上についてをお話しします。 GYAO!のトップページの特徴 映像サービスであるGYAO!のトップページは、豊富なラインアップの中から作品を厳選して掲載しています。有名作品をただ並べるだけではなく、レコメンデーションやターゲティングの技術を使って、閲覧者の趣向にあった作品を一覧しています。大量の画像が表示されていることに加え、縦に長いページ構成となっています。 課題と解決のアプロー

                                                                            GYAO!トップページの表示パフォーマンス改善 〜 GraphQLアーキテクチャへの移行
                                                                          • 大量データの JSON serialize 処理を高速化し、レスポンスが倍速になった話 - freee Developers Hub

                                                                            こんにちは、freee会計でワークフロー機能の開発をしている @mitubaEX です。 先日 freee会計のパフォーマンスチューニングに取り組みました。本記事では、調査の流れ、改善の事例を紹介します。 問題発覚までの流れ freee では自社の経理業務に freee会計を利用しており、その中でも経費精算の機能はほぼすべての従業員が利用しています。そのため日々多くのフィードバックをもらえます。そのフィードバックの1つで、「経費精算の一覧を開くのが遅い」という報告をもらいました。幸い表示件数を指定できるので調整すれば遅くはならないのですが、一覧性が下がってしまうため有用な解決策ではありません。 そこでワークフローを開発しているチームで、このパフォーマンスイシューの調査を始めました。 調査する まず事前調査として Datadog*1 で一覧画面を表示するリクエストの処理を確認しました。 一覧

                                                                              大量データの JSON serialize 処理を高速化し、レスポンスが倍速になった話 - freee Developers Hub
                                                                            • git statusが43秒かかっていたのを1秒に高速化する大規模Gitリポジトリの操作を高速化するためのscalarを紹介 | Act as Professional

                                                                              Git 2.38がリリースされました。 このバージョンから大規模Gitリポジトリの操作を高速化するscalarが同梱されるようになりました。 今回はこのscalarによって、どれぐらいGitの操作が高速化されるのかを簡単に検証します。 結論から言うとgit statusが約43秒かかっていたのが約1秒で操作できるようになります。 Install Git 2.38 Git 2.38からscalarが同梱されましたので、各自の環境にあわせてInstallなりVersionUpなりをしてください。 $ git --version git version 2.38.0 Before 大規模Gitリポジトリとしてchromiumを利用しました。 普通にgit cloneしてきて、git statusを実施すると約37秒かかります。 ❯ time git status On branch main Y

                                                                                git statusが43秒かかっていたのを1秒に高速化する大規模Gitリポジトリの操作を高速化するためのscalarを紹介 | Act as Professional
                                                                              • 【SQL】ちょっとしたパフォーマンスチューニングまとめ - Qiita

                                                                                SELECT table_a.id, table_a.name FROM table_a INNER JOIN table_b ON table_a.id = table_b.id; メリットとしては、 どちらかのテーブルのid列のインデックスを使用可能 サブクエリがないことで中間テーブルが作成されない しかし、インデックスがない場合はEXISTSの方が良い場合があります ソートの回避 SQLでは暗黙的にソートが発生する演算が存在するので、 パフォーマンスにも影響するため、ソートが必要ない場合は考慮する必要があります ソートが発生する演算 GROUP BY句 ORDER BY 句 集約関数(SUM, COUNT, AVG) DISTINCT 集合演算子(UNION, INTERSECT, EXCEPT) ウィンドウ関数(RANK, ROW_NUMBER 等) メモリ上でのソートだけではなく

                                                                                  【SQL】ちょっとしたパフォーマンスチューニングまとめ - Qiita
                                                                                • Ultimate Guide to Improving MySQL Query Performance

                                                                                  MySQL is certainly a powerful open source database management system, but even the most robust engine struggles when queries take an eternity to execute. For DBAs and developers, improving MySQL query performance is an ongoing goal. Efficient query performance is crucial for ensuring the smooth operation and optimal user experience of applications powered by MySQL databases. When businesses rely h

                                                                                    Ultimate Guide to Improving MySQL Query Performance