タグ

performanceに関するsh19910711のブックマーク (253)

  • 開発の進み具合を計測し、モチベーションを維持するために rails stats を保存しよう

    こんにちは。Freespk、Copipedia というウェブサービスを個人で開発しています、Beyond です。 さて仕事で開発を行うときは Issue などでバーンダウンを作成し、順調に開発が進んでいるかを「見える化」していますが、個人で気ままに作る際にはチケットとか Issue とか面倒で作ってられません。 とはいえ何も指標が無いと、ペースが落ちているのかどうか判断することすら感覚的なものとなってしまいます。幸い、Rails には、rails stats というコマンドがあり、コードやテストの有効行数(コメントを除いた行数)を簡単に計算してくれます。下の図の、Code LOC とか Test LOC がそれになります。 $ rails stats +----------------------+--------+--------+---------+---------+-----+--

    開発の進み具合を計測し、モチベーションを維持するために rails stats を保存しよう
    sh19910711
    sh19910711 2025/06/28
    "何も指標が無いと、ペースが落ちているのかどうか判断することすら感覚的なものとなってしまいます / Rails には、rails stats というコマンドがあり、コードやテストの有効行数(コメントを除いた行数)を簡単に計算"
  • [UE4] AnimNotifiy の Play Particle Effect の負荷をUE4標準のObject Pool機能で削減しよう! - Qiita

    はじめに UE4のアニメーション通知(AnimNotify)機能の一つであるPlay Particle Effect(UAnimNotify_PlayParticleEffect)を使って、キャラクタの動きに合わせてエフェクトを再生するようにすることは一般的かと思います。例えば走っているキャラの足が地面に着いた時に砂煙を出したり、攻撃モーション中に火花や軌跡を出したり… https://docs.unrealengine.com/ja/Engine/Animation/Sequences/Notifies/index.html#playparticleeffect しかし、大量のキャラクタが動き回るコンテンツの場合、大量のエフェクトが同時に生成・再生されることによる処理負荷が問題になることが多いです… そこで、記事では 以前に紹介した Spawn Emitter~ノードの Pooling

    [UE4] AnimNotifiy の Play Particle Effect の負荷をUE4標準のObject Pool機能で削減しよう! - Qiita
    sh19910711
    sh19910711 2025/06/28
    2019 / "Play Particle Effect: UE4のアニメーション通知(AnimNotify)機能の一つ + キャラの足が地面に着いた時に砂煙を出したり、攻撃モーション中に火花や軌跡を出したり"
  • BigQueryの変更データキャプチャ(CDC)を活用したデータ移行の最適化 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    BigQueryの変更データキャプチャ(CDC)を活用したデータ移行の最適化 - Qiita
    sh19910711
    sh19910711 2025/06/20
    2024 / "レコードと対応する操作タイプ(INSERT、UPDATE、DELETE)をリアルタイムでステージングテーブルに挿入 / MERGEを使用して、レポートテーブルに対して複数のDML操作(INSERT、UPDATE、DELETE)を同時に実行"
  • bun testが速いのでvitestから置き換えたらめちゃ高速化された

    きっかけ ユニットテストはvitestを使ってます まあ十分速い でもCIで全testを回すとけっこう時間がかかる bunのtestが速いらしい。置き換えよう 置き換えた結果 before (vitest) 1000弱のtestを回すのに2分44秒かかってた after (bun + vitest) 9割方のtestをbunで実行して2秒。速すぎる bunに移行が難しかった一部だけvitestで実行して7秒 bunってどうなの? どうなんですかね? State of JavaScript 2024: Testing によればother testing toolsの中では3位でした Develop, test, run, and bundle ができるオールインワンツールですが、今回はこのtestの部分だけ使うことにしました bun run testとbun testの違い とりあえず bu

    bun testが速いのでvitestから置き換えたらめちゃ高速化された
    sh19910711
    sh19910711 2025/06/20
    2024 / "bun: Develop, test, run, and bundle ができるオールインワンツールですが、今回はこのtestの部分だけ使う / 9割方のtestをbunで実行して2秒 + 移行が難しかった一部だけvitestで実行して7秒"
  • ArtilleryとGitHub Actionsを使った簡単負荷テスト - Alternative Architecture DOJO

    こんにちは!オルターブースのいけだです! 最近子供を連れてキッザニア東京に行ってきたのですが、1日中大忙し&立ちっぱなしで、足が棒のようになりました。 子どもの可愛い姿を見れて大満足だったのですが、親はそれなりにキッザニアのシステムを予習した上で行く事を強くオススメします😅 さて!今回はArtilleryとGithub Actionsを使って簡単に負荷テストを実行してみようと思います!! 負荷テストツールも多々あり、Apache JMeterやLocust等が有名でしょうか。 今回扱うArtilleryはyamlファイルでシナリオを作成し、負荷をかけることができるNode.js製のツールです。 www.artillery.io 今回初めて触ってみましたが、さくっと感があって非常に使いやすいツールと感じました。 また、公式のGitHub Actionがあるので、簡単に負荷テストをCIに組み

    ArtilleryとGitHub Actionsを使った簡単負荷テスト - Alternative Architecture DOJO
    sh19910711
    sh19910711 2025/06/20
    2024 / "Artillery: yamlファイルでシナリオを作成し、負荷をかけることができるNode.js製のツール + さくっと感があって非常に使いやすい / Artilleryは「砲兵団」や「大砲」という意味がある"
  • GPUで高速なモデル推論を実現するために考えること -FlashAttentionはなぜ高速か- - エムスリーテックブログ

    こちらはエムスリー Advent Calendar 2024 17日目の記事です。 AI機械学習チームの髙橋です。チームでは先週からNeurIPS読み会が開催されており、"Deep Learning Architecture, Infrastructure"という深層学習のアーキテクチャに関するセッションを担当しました。その中でも興味深い一として"You Only Cache Once: Decoder-Decoder Architectures for Language Models"という論文を勉強会まとめブログで紹介してます。 www.m3tech.blog この論文ではLLMの推論時に用いられるKey Value Cacheという仕組みに着目してGPUメモリの占有量やスループットを大幅に向上させるアーキテクチャを提案していました。非常にモデルが大規模化した昨今、この論文のように

    GPUで高速なモデル推論を実現するために考えること -FlashAttentionはなぜ高速か- - エムスリーテックブログ
    sh19910711
    sh19910711 2025/06/20
    2024 / "GPUに搭載される2種類のメモリ / SRAMはGPUで実際に演算を行うためのデータを一時的に保持するためのメモリ空間 / 演算を行うにはHBMからSRAMにデータを送り、その演算結果をSRAMからHBMに書き戻す処理が発生"
  • ベクトル検索を実現する技術選定 ~pgvectorとQdrantの性能比較~ - Retty Tech Blog

    記事はRettyアドベントカレンダー2024の9日目の記事です。 Rettyエンジニアリングマネージャを務めている山田です。 2022年の年末頃にChatGPTが登場してから早2年となります。 当初は革新的なAIという印象でしたが、時間の経過によりLLMを普段の生活や業務に活かしたり、これを応用したアプリケーションの開発を検討するなど、こうした発明もある程度浸透してきている頃合いではないかと思います。 特に、LLMは任意の自然言語形式のデータの取り扱いに優れ、これまで実現が難しかったアイデアを形にすることができるため、LLMを応用して新しい体験を提供する機能の開発に取り組んでいる方や、すでにリリースされている方も多いでしょう。 一方で、LLMの活用を考える上で、コストの問題や長いレスポンスタイム、特にクローズドなモデルの場合挙動が時間経過で微妙に変わってしまうなど、特有の困りごとに直面

    ベクトル検索を実現する技術選定 ~pgvectorとQdrantの性能比較~ - Retty Tech Blog
    sh19910711
    sh19910711 2025/06/14
    2024 / "iterative_scan: pgvector 0.8.0で追加されたもので、指定した件数を満たすまで反復的にスキャンを繰り返すという挙動を実現 / インデックスが使われるかどうかはオプティマイザが判断することになる"
  • 愚直に RDBMS を使っていた検索機能を、全文検索エンジン OpenSearch の力で 10 倍速くした話 - WILLGATE TECH BLOG

    ウィルゲートのエンジニアの岡田/おかしょい(@okashoi)です。 私はここ 1 年間ほど、新規プロダクトである BtoB セールスツール「アポトル」を開発するチームに所属していました。 www.willgate.co.jp このアポトルにおいて、全文検索エンジン OpenSearch を導入して検索機能の速度を大きく改善した事例について紹介いたします。 この記事は「ウィルゲート Advent Calendar 2024」の 7 日目の記事です。 adventar.org リリースを迎えたアポトルの検索機能が抱えていた課題 OpenSearch 導入 導入結果:検索速度が 10 倍に OpenSearch 導入時の設計指針 データストア目的では使わない 検索以外の機能のために使用しない Amazon OpenSearch Service のドメイン設定 OpenSearch における個別

    愚直に RDBMS を使っていた検索機能を、全文検索エンジン OpenSearch の力で 10 倍速くした話 - WILLGATE TECH BLOG
    sh19910711
    sh19910711 2025/06/11
    2024 / "気軽に色々な形でデータを保存・検索できて便利な半面、安易に様々な用途に使っていると設計が崩壊 / RDBMS(MySQL)が役割を担うべきところは RDBMS に任せ、企業検索機能に関連するデータだけを OpenSearch に保存"
  • APIが遅いと思っていたら、GCPのCloudNATでパケロスしていた話 - Uzabase for Engineers

    導入 問題の発覚 動的ポート割り当ての落とし穴 監視とアラート 導入 こんにちは、Product Team SREのkterui9019です。 今回はGCPのCloudNATについての調査結果を共有したいと思います。CloudNATを利用している中で気づかないうちに実はパケットロスが発生していたので、詳細をご紹介します。 問題の発覚 私たちはお客様からの問い合わせを受けて、GKEにデプロイされている特定のマイクロサービスの「遅いエンドポイント」について調査を行っていました。 Datadogのトレースを追っていく中で、GCPVPC外へのAPIアクセスがタイムアウトしていることが判明しました。しかし、VPC外のAPI自体は数ミリ秒でレスポンスを返していたのです。 APIのレスポンスが終わっているのに呼び出し元の関数が異常に長いスパンになっていた この問題はネットワークに関連する可能性が高いと

    APIが遅いと思っていたら、GCPのCloudNATでパケロスしていた話 - Uzabase for Engineers
    sh19910711
    sh19910711 2025/05/31
    2023 / "CloudNATのモニタリング指標を調査してみると、「OUT_OF_RESOURCES」というエラーが散発的に発生 / NAT IPアドレスまたはポートが不足 / アラートを設定しておくことをおすすめ"
  • ClineにOTel Trace signalをMCPで与えてISUCONをやってもらう - 対数犬度関数

    MCP(Model Context Protocol)の策定によりCoding AgentやLLMに対して幅広い情報を与えられるようになりました。 であればOpenTelemetryのTrace signalなども与えられることになりますが、いくつかの疑問が浮かびます。 LLMはテキストとして表現されたトレースやメトリクスを解釈できるのか? ウォーターフォールビューとして表現しないと解釈できないのでは? トレースの内容を元に分析などはできるか? この記事では、OTelのTrace signalについての処理を行うMCPサーバーを実装し、Cline + claude-3-7-sonnet-20250219に与えて ISUCON13 のパフォーマンス改善が可能か検証します。 結果と知見 JSONで返すだけでもトレースやメトリクスの解釈、分析は可能 ただトレースを全て返すとTokenが長大になる

    ClineにOTel Trace signalをMCPで与えてISUCONをやってもらう - 対数犬度関数
    sh19910711
    sh19910711 2025/05/27
    "対象のエンドポイントと改善内容の指示のみで仕様を満たしたリファクタリング / MCPでの統合が難しそうなデータについては人間が解釈する必要がありそうなので、戦略的な指示を出す役割を担う形になる"
  • vLLMのSpeculative Decodingによる推論高速化を試す

    はじめに この記事では、Speculative DecodingによるLLMの推論高速化をvLLMで試し、簡単なベンチマークを行った結果を共有します。 Speculative Decodingについて 最初に、Speculative Decodingについて簡単に解説します。 Speculative Decodingとは、大型のモデルの推論をする際、より小型のモデルを利用して推論を高速化する手法です。この来の出力を得たい大型のモデルをTarget Model、高速化のための小型のモデルをDraft Modelと言います。 Speculative Decodingでは通常の推論とは違い、推論の際にまず小型のDraft Modelが一定のDraft Tokens分の生成を行い、候補となるトークン列を提案します。その後Target ModelはこのDraft Tokensに対して確率分布を元に

    vLLMのSpeculative Decodingによる推論高速化を試す
    sh19910711
    sh19910711 2025/05/27
    "推論の際にまず小型のDraft Modelが一定のDraft Tokens分の生成を行い、候補となるトークン列を提案 / Target Modelによって受理された先頭部分は採用し、不採用となった位置の直後のトークン(Bonus Token)だけをTarget Modelが生成"
  • AIとの会話で仕事効率を下げてしまった話|ひぐ

    こんにちは。昨今、CursorやMCPなどを利用することが流行っているように、AI関連のツールは仕事効率を非常に改善してくれますし、正しく使用すれば今までにない生産性を発揮できると感じています! しかし今回は、私自身がPMとしてAIを使用することでかえって仕事の効率が悪くなってしまった経験について共有したいと思います。😅 この反省をもとに、なぜそのようになってしまったのかや、解決策について考察していきたいと思います。 AIというと範囲は広いですが、今回はオーソドックスなチャットベースの壁打ちや仕事相談として使うという文脈で話します。 AIとの会話の特徴や限界AIは強力なツールです。しかし、一歩引いて考えたときに、当たり前ですが彼らとの会話によって生み出される会話や生産にはいくつかの質的な限界があります。 聞かれた質問に対して前提を疑わず回答するAIは、入力された情報とその文脈に基づい

    AIとの会話で仕事効率を下げてしまった話|ひぐ
    sh19910711
    sh19910711 2025/05/20
    "質問することは、当然ながら自分が知っていることや考えていること / 問いの外には踏み出してこないので、結果的に思考が自分の延長線上に閉じたまま"
  • Vue.jsを用いて数万の農地データ情報を数秒で表示させるまでのカイゼンの軌跡

    開発生産性を始める前に開発チームができること / optim-improve-development-productivity.pdf

    Vue.jsを用いて数万の農地データ情報を数秒で表示させるまでのカイゼンの軌跡
    sh19910711
    sh19910711 2025/05/14
    2024 / "Pinia: 状態管理ライブラリ / APIで座標込みのポリゴンデータを取得 + ポリゴンを全て生成してPiniaに保持 + マップの表示領域・ズーム倍率に応じてPiniaから必要文を取得"
  • TensorRT-LLMでLLM推論高速化 - arutema47's blog

    TensorRT-LLMとは TensorRTをLLM用に多数の推論高速化技術を入れたNvidiaのオープンソースフレームワーク。 GPUメモリ使用率を半分に低減し、速度も1.5-2倍程度改善してくれる強力なフレームワーク。 www.alibabacloud.com TensorRT-LLMについてはこちらのAlibaba解説がわかりやすい。 特徴 量子化による省GPUメモリ 重み、Activation量子化を積極的に入れ込み、GPUメモリ使用量を半分以下に削減。 W8A8 SQ uses the SmoothQuant technique[2], which reduces the model weight and activation layer to the quantization precision of INT8 without reducing the accuracy of

    TensorRT-LLMでLLM推論高速化 - arutema47's blog
    sh19910711
    sh19910711 2025/05/14
    2024 / "LLM用に多数の推論高速化技術を入れたNvidiaのオープンソースフレームワーク / モデルコンパイル: MLPレイヤとNormalizeレイヤを一つのレイヤにまとめる + メモリ読み書きの回数を減らし高速化"
  • データエンジニア向け Snowflakeパフォーマンス最適化機能まとめ

    Snowflakeパフォーマンス最適化機能クラスタリングキー & Search Optimization & Query Acceleration はじめに SnowVillageのUnConference第五回イベントで、けびんさんのSOS検証記事の解説LTを聞いた事が、この記事を書くきっかけとなりました。 その際に紹介いただいた以下の記事とその際の質疑応答を通じて自分の不勉強さを痛感し、自分でもちゃんと学ぼうと思い、改めて仕様の理解と実際の検証結果と共にこの記事にしました。 各機能の詳細な説明はけびんさんや諸先輩方の記事を参考にいただく事でより深く理解が出来ると考えています。この記事ではそれらの各機能を理解しつつ、その全体像を自分なりの考え方で体系化し、またそれらについてTPC-Hのデータを用いたハンズオン形式にすることでステップバイステップで、どのような効果があるかを比較した結果を加

    データエンジニア向け Snowflakeパフォーマンス最適化機能まとめ
    sh19910711
    sh19910711 2025/05/01
    "カーディナリティが高い項目についてのクラスタリングキーは効果が薄いことが多い / クラスタリグキーを設定した上で、SOSを適用することで無地のテーブルに比べ、7倍以上速く"
  • 高速化・並列化・標準化で スケールするML予測システムの開発

    3年でバックエンドエンジニアが5倍に増えても破綻しなかったアーキテクチャ そして、これから / Software architecture that scales even with a 5x increase in backend engineers in 3 years

    高速化・並列化・標準化で スケールするML予測システムの開発
    sh19910711
    sh19910711 2025/05/01
    2021 / "ML利用案件でよくある3課題: 属人化 + タイトな締切 + 並行して走る案件 / Yule: 多数モデルをアンサンブルして推論まで一気に実行 / 分散処理 + 学習監視 + 中間データをキャッシュ"
  • Julia 開発の道具箱(チューニング編)

    TSConfig Solution Style & subpath imports to switch types on a per-file basis

    Julia 開発の道具箱(チューニング編)
    sh19910711
    sh19910711 2025/04/23
    2014 / "Base.@show: printfデバッグ用のマクロ + 式そのものと、その値を表示できる / @allocated(ex): 式exを実行し、その間に確保したメモリをByte単位で返す"
  • 本番のトラフィック量でHudiを検証して見えてきた課題

    otfst_tokyo #4 登壇資料

    本番のトラフィック量でHudiを検証して見えてきた課題
    sh19910711
    sh19910711 2025/04/20
    2024 / "秒間4000件程度のデータ入力 / EMRFSによるS3接続のコネクションがCLOSE_WAIT状態で残り続けてTCPのコネクション数もしくはfdが枯渇する問題があった"
  • Snowflake Search Optimization 徹底解説

    はじめに こんにちは!ナウキャストのデータエンジニアのけびんです。 Snowflake は様々な便利な機能がありますが、その一つに "Search Optimization" (検索最適化サービス) があります。 Search Optimization は大規模なテーブルに対する選択的な検索などのクエリのパフォーマンスを向上させるための仕組みです。 ブログでは Search Optimization に関する概要を説明し、利用時の注意点や具体的なユースケースを紹介していきます。 仕組み クエリのパフォーマンスを向上させるためには余計なマイクロパーティションを読み込まないことが重要です。例えば Clustering ではデータをソートして似たデータが近いパーティションに含まれるようにすることで partition pruning の効率を向上します。今回のテーマである Search Opt

    Snowflake Search Optimization 徹底解説
    sh19910711
    sh19910711 2025/04/19
    "Search Optimization が有効化されると "Search Access Path" と呼ばれるデータ構造が追加で維持・管理 / RDB における index と似た働きをする、と表現するとイメージしやすい"
  • 遷移の高速化 ヤフートップの試行錯誤

    LY社では、Webパフォーマンスの改善による高速化の取り組みを続けてきました。中でもbfcacheの有効化は、ユーザー影響が大きく重要視していた技術の一つです。 bfcache(バックフォワードキャッシュ)とは、ブラウザでページを遷移した時にページの完全なスナップショットとして保存されるメモリキャッシ…

    遷移の高速化 ヤフートップの試行錯誤
    sh19910711
    sh19910711 2025/03/05
    "bfcache: ブラウザでページを遷移した時にページの完全なスナップショットとして保存されるメモリキャッシュ + 見ていた画面がそのままブラウザ上に復元 / 既存のログ傾向が変化してしまう問題"