並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 41件

新着順 人気順

パフォーマンスの検索結果1 - 40 件 / 41件

  • データベースの値をちょっとだけ書き換えたら検索に数十分かかる様になって障害になった裏話 - STORES Product Blog

    はじめに 2024年1月にリテール(ネットショップ・レジ)部門からサービス(予約)部門に異動になった @ucks です。 異動してからはスマートリストという機能の開発を行っていて、5月6日に無事リリースできたのと、開発途中で障害に至ってしまった部分があるので、裏側を少し紹介しようかなと思います。 はじめに スマートリストとは スマートリストの設計 検索の仕様変更 高負荷時のハンドリング そして障害へ 見逃した点 DBの実行計画確認時の見逃し 動作確認時の漏れ 監視先の漏れ ログの損失 おわりに スマートリストとは スマートリストの開発についての話を行う前に、まずはスマートリストについて簡単に説明しておきます。 スマートリストとは、特定の条件の顧客をラベリングする機能です。 早い話、最終予約日がいつ、予約回数が何回以上等の顧客の検索条件を保存しておいて、閲覧時にラベリングして、視認しやすくし

      データベースの値をちょっとだけ書き換えたら検索に数十分かかる様になって障害になった裏話 - STORES Product Blog
    • UUIDとULIDを理解していない方は見た方がいい記事

      Auto increment(自動採番)型を採用したくない場合 Auto Incrementは、データベースにおいて自動的に一意の識別子を生成するメカニズムです。通常、数値型の列が対象となり、新しいレコードが挿入されるたびにその列の値が自動的にインクリメントされます。典型的なIDですかね。 ここでは一意性の確保の話や、データ移行やバックアップのデメリットには言及せず、セキュリティとプライバシーの懸念にフォーカスして考えます。 予測可能性 Auto Increment型のIDは連番であるため、次に生成されるIDが容易に予測可能です。これにより、攻撃者がシステムの内部構造を推測し、不正アクセスを試みるリスクが高まります。 情報漏洩のリスク 連番のIDはデータベースの挿入順序を反映しているため、公開されることで企業の活動パターンやデータ生成の頻度が漏洩する可能性があります。 例) 競合他社は、公

        UUIDとULIDを理解していない方は見た方がいい記事
      • 負荷テスト on AWS のすすめ (AWS Summit Japan 2024 - Ministage session)

        AWS Summit Japan 2024 にて、セキュリティ & One-AWS Zone ミニステージでの登壇資料です。 「負荷テストは、AWS を使ってどう楽になるか?」についてお話しました。スライド内のリンク類はコチラ→https://mabuchs.hatenablog.com/entry/…

          負荷テスト on AWS のすすめ (AWS Summit Japan 2024 - Ministage session)
        • 動画生成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について:一番星はてのは目をゆっくり開き、踊れるか
          • explainだけじゃわからない!MySQLのindexの考え方 - BASEプロダクトチームブログ

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

              explainだけじゃわからない!MySQLのindexの考え方 - BASEプロダクトチームブログ
            • MySQL8.0でSELECT COUNT(*)が低速になる動作は8.0.37で解消されていた! - CyberAgent SRG #ca_srg

              メディア統括本部 サービスリライアビリティグループ(SRG)の鬼海雄太(@fat47)です。 #SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。 本記事は、MySQ

                MySQL8.0でSELECT COUNT(*)が低速になる動作は8.0.37で解消されていた! - CyberAgent SRG #ca_srg
              • Pythonの爆速化! ピュアPythonに組み込まれている機能でコードの最適化を実現するには

                Pythonの爆速化を可能にするにはどうすればいいのか。ツールやライブラリに頼る前に、まずはピュアPythonに組み込まれている機能を使い、コードの最適化を図るべきです。なぜなら、処理速度の課題を解決できる可能性が高いからです。今回はPythonのパフォーマンスを劇的に向上させるためのテクニックを解説した『爆速Python』(翔泳社)から、Pythonの組み込み機能のパフォーマンスを引き出す方法を紹介します。 本記事は『爆速Python』の「Chapter 2 組み込み機能のパフォーマンスを最大限に引き出す」から一部を抜粋したものです。掲載にあたって編集しています。 ※本書はTiago Rodrigues Antãoによる『Fast Python: High performance techniques for large datasets』(Manning Publications)の邦

                  Pythonの爆速化! ピュアPythonに組み込まれている機能でコードの最適化を実現するには
                • 「フォト」アプリが爆速に ~MicrosoftがUWP→Windows App SDK移行の苦労を解説/移行の技術的ハードルは高いが、確かなメリット

                    「フォト」アプリが爆速に ~MicrosoftがUWP→Windows App SDK移行の苦労を解説/移行の技術的ハードルは高いが、確かなメリット
                  • 2024年度「大転職時代」における人的資本経営のトレンドと対策「2番目の報酬」「CQマネジメント」「アルムナイ」「パフォーマンスマネジメント」|谷本 潤哉 - 株式会社O: CEO

                    2024年度「大転職時代」における人的資本経営のトレンドと対策「2番目の報酬」「CQマネジメント」「アルムナイ」「パフォーマンスマネジメント」 2024年度は「大転職時代」と称され、企業の人的資本経営における新たなトレンドと対策が必要不可欠となっています。 経済のグローバル化、テクノロジーの進化、労働市場の流動性の増加に伴い、従業員と企業の関係性は一変しました。 この新しい時代に適応するためには、企業は伝統的な経営戦略を見直し、2つめの報酬、CQ(文化的知性)・越境マネジメント、アルムナイ施策、パフォーマンスマネジメントといった分野におけるアプローチを取り入れる必要があるのではと考えてご紹介します。 人的資本経営のトレンドを深掘りし、企業が直面する課題に対して実践的な対策を提示しますが、組織の持続可能な成長と従業員の満足度向上を目指す企業にとって、これらのトピックは避けて通れない重要事項と

                      2024年度「大転職時代」における人的資本経営のトレンドと対策「2番目の報酬」「CQマネジメント」「アルムナイ」「パフォーマンスマネジメント」|谷本 潤哉 - 株式会社O: CEO
                    • E2Eテストワークフローを高速化・安定化させる取り組み | ドクセル

                      スライド概要 GitHub Actions Meetup Tokyo #3 https://gaugt.connpass.com/event/317178/ このプレゼンテーションでは、サイボウズ社のGaroonのE2Eテストについて、GitHub Actions self-hosted runner 上で実行していたE2Eテストを高速化・安定化させるために取り組んだこと、E2Eテストワークフローの視点の改善アイディアについて話されます。GaroonのE2Eテストにおける実行時間とFlakyが問題となっており、その改善に取り組んだ内容が紹介されています。 おすすめタグ:GitHub Actions,E2Eテスト,self-hosted runner,Garoon,テストワークフロー

                        E2Eテストワークフローを高速化・安定化させる取り組み | ドクセル
                      • 大規模サービスのローンチに向け、パフォーマンスチューニングした話 #go #aws

                        背景 こんにちは!Hanoi Dev Centerでバックエンドエンジニアをしているminhquangです。この記事では、私がAI事業本部のある新規プロダクト開発に参画した際に経験したパフォーマンスチューニングについて話したいと思います。 皆さんはサービスのローンチ(サービスを世の中に初めて出すリリース)をやったことがありますか。サービスローンチするときに、リクエストのスパイクや、ユーザー数の増加によるサーバー負荷増加など、様々な未知な課題が存在します。 私のチームでは数百万人の利用が見込まれるサービスにおいて、18000RPSを実現するべく負荷試験とパフォーマンスチューニングを実施しました。 本記事では、上記のサービス要件を満たすために私たちが取り組んだ負荷試験やパフォーマンスチューニングについて説明しつつ、これらの経験から得られた学びを共有したいと思います。 前提 技術スタック サーバ

                          大規模サービスのローンチに向け、パフォーマンスチューニングした話 #go #aws
                        • Lion CoveとSkymontの詳細が明らかに。Hyper-Threading「非対応」で電力効率爆上げ

                            Lion CoveとSkymontの詳細が明らかに。Hyper-Threading「非対応」で電力効率爆上げ
                          • 分散トレーシングを使ってパフォーマンス改善をやってみたら、レスポンスタイムを2割近く改善できたお話 - Tabelog Tech Blog

                            目次 目次 はじめに そもそもシステム運用改善チームとは何か? なぜアプリAPIのパフォーマンス改善が必要になったのか? どうやって改善箇所を見つけるのか? 分散トレーシングを使って、店舗詳細APIを細かく分析する 計測結果の見方 計測結果から分かったこと 計測結果から見つけたポイントに改善を実施していく コースに紐づくクーポンの取得 口コミを取得する処理と公開画像数のカウント ユーザーごとの公開口コミ投稿数の合計数カウント 全体での改善効果はどうだったか? パフォーマンス改善の影響 ユーザー体験が向上した 今後の食べログ成長に備えたシステム上の余裕ができた 食べログの分散トレーシングを使って改善を実施してみてよかったこと おわりに はじめに こんにちは。食べログ開発本部 ウェブ開発1部 システム運用改善チームの @4palace です。 今回は、私の所属するシステム運用改善チームが食べロ

                              分散トレーシングを使ってパフォーマンス改善をやってみたら、レスポンスタイムを2割近く改善できたお話 - Tabelog Tech Blog
                            • Sysinternalsの高機能プロセスモニター「Process Monitor」が12年ぶりのメジャー更新/インターフェイス、フィルタリング、パフォーマンスを改善した「Process Monitor 4.0」

                                Sysinternalsの高機能プロセスモニター「Process Monitor」が12年ぶりのメジャー更新/インターフェイス、フィルタリング、パフォーマンスを改善した「Process Monitor 4.0」
                              • 時間の使い方が変わる。作業スピード&パフォーマンス管理ツール4選【今日のライフハックツール】 | ライフハッカー・ジャパン

                                2024年11月発売のPS5新作『ドラゴンクエストIII そして伝説へ...』が14%OFFはアツい #Amazonセール

                                  時間の使い方が変わる。作業スピード&パフォーマンス管理ツール4選【今日のライフハックツール】 | ライフハッカー・ジャパン
                                • SaaS 向けリレーショナルデータベースのスケーリング (Part 1: 一般的なスケーリングパターン) | Amazon Web Services

                                  Amazon Web Services ブログ SaaS 向けリレーショナルデータベースのスケーリング (Part 1: 一般的なスケーリングパターン) ビジネスが成長するにつれて、SaaS (Software as a Service) プロバイダーが直面する課題の 1 つは、テナントのエクスペリエンスをどのように維持するかです。これには、テナントベースが拡大するにつれて、許容できるパフォーマンスとレスポンスタイムを確保することが含まれます。Amazon Relational Database Service (Amazon RDS) や Amazon Aurora などのリレーショナルデータベースは、一般的に SaaS プロバイダーによって使用されています。ビジネスが成長するにつれて、データベースのスケーリング方法も決定する必要があります。 SaaS ビルダーとしての課題は、SaaS

                                    SaaS 向けリレーショナルデータベースのスケーリング (Part 1: 一般的なスケーリングパターン) | Amazon Web Services
                                  • Mapのパフォーマンス向上のために検討されているSwissTableを理解する

                                    スライドに記載しているリンク P29 拡張後の取得 https://github.com/golang/go/blob/go1.22.4/src/runtime/map.go#L419-L430 P32 拡張後の登録 https://github.com/golang/go/blob/go1.22.4/src/runtime/map.go#L609-L612 https://github.com/golang/go/blob/go1.22.4/src/runtime/map.go#L1140-L1149 P58 議論されているissueでのやり取り抜粋 https://github.com/golang/go/issues/54766 P68 mapの拡張条件 https://github.com/cockroachdb/swiss/blob/main/map.go#L1028-L1057

                                      Mapのパフォーマンス向上のために検討されているSwissTableを理解する
                                    • BiomeがforEachではなくfor...ofを推す理由を処理速度の観点から見る

                                      Intro biomeにはforEachを使用すると、for...ofを使用するようにエラーが出ます。これはnoForEachというrecommendedルールによるものです。 今回はなぜfor...ofを使うように推奨しているのかを、処理速度の観点で見ていきます。 Performance ドキュメントには以下のように記載されています。 Performance: Using forEach can lead to performance issues, especially when working with large arrays. When more requirements are added on, forEach typically gets chained with other methods like filter or map, causing multiple iter

                                        BiomeがforEachではなくfor...ofを推す理由を処理速度の観点から見る
                                      • DatadogでAPI毎のSQL発行数を可視化してN+1を改善! - Nealle Developer's Blog

                                        こんにちはSREチームの宮後(@miya10kei)です。最近、スマートホーム化にハマっていていろいろと買い漁っています🛒 N+1問題を検知するのって結構大変ですよね? 今回はDatadogを使ってN+1問題を可視化し、パフォーマンス改善につなげた話を紹介したいと思います。 ※ 2024/05/29に開催されたJapan Datadog User Group Meetup#4 でもLTしてきました🎤 speakerdeck.com N+1問題とは? N+1問題は主にデータベースへのクエリーを扱う際に出くわすパフォーマンス上の問題です。1つのクエリーでN件のデータを取得した後にそれぞれのデータに対して追加でクエリーが発行されることでパフォーマンスを大幅に低下させます。(1 + N問題と呼んだ方がしっくりくる気がしますが...🤫) 背景 この取り組みを始めた経緯は、システムへのリクエスト

                                          DatadogでAPI毎のSQL発行数を可視化してN+1を改善! - Nealle Developer's Blog
                                        • Unityクライアントのパフォーマンス改善の進め方 - Cluster Tech Blog

                                          はじめに パフォーマンス改善についての参考文献 実機計測 フィーチャーフラグ 計測・プロファイリング 効果見積 効果計測 おわりに はじめに こんにちは、クラスター株式会社のソフトウェアエンジニアのsotanです。今回はUnityクライアントのパフォーマンス改善の取り組みについて紹介します。ユーザーの皆さまに快適な体験を提供できるように、新機能の開発や既存機能の拡張・修正と並行して、パフォーマンス改善に取り組んでいます。具体的な改善点や改善方法を全て紹介することはできないのですが、どのような雰囲気で進めているのかを知ってもらえればと思います。 パフォーマンス改善についての参考文献 Unityアプリケーションのパフォーマンス改善に必要となる基礎知識やノウハウについては、 【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術(docswell, YouTube) Unityパ

                                            Unityクライアントのパフォーマンス改善の進め方 - Cluster Tech Blog
                                          • 【Hothotレビュー】 Core Ultra 7 165H搭載の最新NUC登場!高性能かつ静かなミニPC「ASUS NUC 14 Pro」

                                              【Hothotレビュー】 Core Ultra 7 165H搭載の最新NUC登場!高性能かつ静かなミニPC「ASUS NUC 14 Pro」
                                            • e18e

                                              Welcome to e18e! ​e18e (Ecosystem Performance) is an initiative to connect the folks and projects working to improve JS packages performance. We'd also like to provide visibility to the efforts of countless Open Source developers working to cleanup, levelup, and speedup our dependencies. We invite you to get involved in the different projects linked from these pages, and to connect with others lik

                                                e18e
                                              • FreeBSD 14.1がリリース | gihyo.jp

                                                FreeBSD Foundationは2024年6月4日、FreeBSDの最新リリース版であるFreeBSD 14.1-RELEASEを公開した。 FreeBSD 14.1: What’s new, and how did we get here? | FreeBSD Foundation FreeBSD 14.1-RELEASE Release Notes | The FreeBSD Project 🚀 Just in! #FreeBSD 14.1-RELEASE is here with a bang! 🎉 Dive into the latest enhancements including new drivers, improved hardware support, and stronger security. #OpenSource #TechUpdatehttps://t

                                                  FreeBSD 14.1がリリース | gihyo.jp
                                                • GitHub - e18e/e18e

                                                  The e18e (Ecosystem Performance) project is an initiative to bring together the groups and individuals who are passionate about improving performance of the JavaScript ecosystem. Many ongoing efforts are already happening in this space, from dependency tree cleanups to performance optimizations, and much more. Our aim is to provide a space for contributions, ideas and knowledge sharing around the

                                                    GitHub - e18e/e18e
                                                  • 近似近傍探索のチューニングで気をつけること

                                                    本記事ではFaissやScaNNといったライブラリに実装されているIVF-PQ系の近似近傍探索手法のパラメータチューニングの際に気をつける点を紹介します。pythonのプログラム上で動かすことを想定していて、vertex AI vector searchのようなAPIで行うものは対象外です。ただ、OpenSearchではfaissを近似近傍探索として選ぶことができるため、チューニングの参考になるかもしれません。 はじめに: ANN-Benchmarksの罠 ANNの性能とパフォーマンスの参考になるサイトとして、ANN-Benchmarksというサイトがあります。このサイトでは各近似近傍探索のパフォーマンスが様々なベンチマークにより比較されており、近年ではFaissに実装されているFastScanやTensorFlow recommendersから使えるScaNNといった、高速化されたIVF

                                                      近似近傍探索のチューニングで気をつけること
                                                    • 高性能な CSS アニメーションを作成する方法  |  Articles  |  web.dev

                                                      要素を移動する 要素を移動するには、transform プロパティの translate または rotation キーワード値を使用します。 たとえば、ビュー内にアイテムをスライドして表示するには、translate を使用します。 .animate { animation: slide-in 0.7s both; } @keyframes slide-in { 0% { transform: translateY(-1000px); } 100% { transform: translateY(0); } } 要素を回転するには、rotate を使用します。次の例では、要素を 360 度回転させます。 .animate { animation: rotate 0.7s ease-in-out both; } @keyframes rotate { 0% { transform: rot

                                                      • Mastering Node.js Performance Hooks

                                                        Node.js includes a built-in module called performance hooks for precise performance measurement. But why use it when you can simply log timestamps and calculate the difference between two dates? At least because it is precise. The module uses a monotonic clock that allows you, as a user, to make performance measurements and be sure that they are not corrupted. At first, I struggled to understand h

                                                          Mastering Node.js Performance Hooks
                                                        • RubyKaigi2024に参加してきました⛱️

                                                          2024年5月15〜17の3日間、沖縄県那覇市で開催されたRubyKaigi2024に参加してきました! 今年も楽しかったですね・・・! だいぶ間が空いてしまいましたが、聴講したトークや思ったことなど書いてみました。 トーク感想 Day1 The grand strategy of Ruby Parser by Yuichiro Kaneko 発表資料 Ruby3.3で導入されたパーサージェネレータであるLramaについて、どんなものなのか、それがなぜ選ばれたのか、そして現在のRubyのパーサ周りの開発がどのような状況かといった内容でした。 まずここでいうパーサとは、Rubyのコードを解釈してASTとして出力するためのものです。 出力されたASTは、主にLSPのような開発支援の外部ツール等で使われます。 Ruby3.3では、それまでのBisonに代わってLramaというRubyで書かれた新

                                                            RubyKaigi2024に参加してきました⛱️
                                                          • 1人日で出来るWebパフォーマンス改善入門 - Qiita

                                                            はじめに こんにちは、株式会社HRBrainでデザインエンジニアをしている @Mozu1206 です。 Webパフォーマンス改善。なんとも面倒くさそうな響きですよね。 「やり方もよく分からないし、一旦置いておこう…」 と思ってるそこのあなた! この記事では、そんなあなたに向けたサクッと1人日で出来る、効果が期待できるパフォーマンス改善策をいくつか紹介します! 具体的な方法をステップごとにご説明しますので、ぜひ参考にしてみてください! 1人日で出来るWebパフォーマンス改善 1. 画像を圧縮する 画像ファイルは、Webサイトの読み込み時間を大きく左右する要素の一つです。画像を圧縮することで、ファイルサイズを小さくし、読み込み時間を短縮できます。 ImageMagickなどのツールで圧縮する: ImageMagickなどのツールを使って画像を圧縮することで、品質を保ちながらファイルサイズを削減

                                                              1人日で出来るWebパフォーマンス改善入門 - Qiita
                                                            • Stupid Slow | datagubbe.se

                                                              Stupid Slow: The Perceived Speed of Computers Summer 2024 Computers today are faster than ever. They are faster at crunching numbers, they can handle more I/O and they can produce better quality graphics than anything previously produced. Even a dirt cheap modern microcontroller will run in circles around the home computers I grew up with. And yet, computers today often feel slow. There's recently

                                                              • Ruby 3.3.0 Rails 7.1.3 でYJITを有効にする - Qiita

                                                                if defined? RubyVM::YJIT.enable Rails.application.config.after_initialize do RubyVM::YJIT.enable end end 運用中に何かの理由で無効にしたくなったら、コメントアウトするかファイルごと削除します。 この方法は、最新のRuby on Railsに取り込まれているそのままです。 YJITとは Rubyを高速に実行する機能です。Ruby 3.3 から Ruby on Rails に適用するのも実用的になったそうです。次の記事で詳しく説明されています。 Ruby 3.3 YJITのメモリ管理とRJIT 〜すべてが新しくなった2つのJITを使いこなす | gihyo.jp RubyはJust-In-Time(JIT)コンパイラという機能を備えており、これを有効化すると実行時に機械語を生成して様々な最適

                                                                  Ruby 3.3.0 Rails 7.1.3 でYJITを有効にする - Qiita
                                                                • memoiseによる1行変更するだけのShinyApp高速化 - Qiita

                                                                  Shiny App を高速化したいときに比較的簡単に試せるのがmemoiseを使ったデータのキャッシュ化です。それについて紹介します memoise とは? 私がこのパッケージを初めて知ったのは、Shiny高速化を調べてる際にpromisesのドキュメントを読んでたときでした 参考 : Case study: converting a Shiny app to async memoiseがどう役立つかというと、ある関数を同じインプットで何度も呼び出すなら、はじめて呼び出したときにデータをキャッシュ化して、2度目以降の呼び出しはそのキャッシュ化されたデータを返してあげよう というところです キャッシュ先としては、なんらかのファイルシステム(例えば、 tmpfs) やクラウドストレージ(例えば、S3)を使うことができます 2019-10-21追記 また、キャッシュ先としてRedisを使うことも

                                                                    memoiseによる1行変更するだけのShinyApp高速化 - Qiita
                                                                  • AWS Kinesis 上で OpenTelemetry トレースヘッダを伝搬する方法: パート1 | SpeedData

                                                                    IPM ― 顧客体験と従業員体験向上のためのソリューション 2024年6月14日 翻訳: 逆井 晶子 この記事は米Catchpoint Systems社のブログ記事「How to propagate OpenTelemetry trace headers over AWS Kinesis: Part 1」の翻訳です。 Spelldataは、Catchpointの日本代理店です。 この記事は、Catchpoint Systemsの許可を得て、翻訳しています。 AWS Kinesis における OpenTelemetry トレースヘッダの伝搬の複雑さを解説するシリーズへようこそ。 この3部構成の探索では、分散システムにおけるトレースヘッダの重要な役割を掘り下げ、AWS Kinesis に特有の課題を議論し、データ追跡を堅牢かつ一貫して維持するための革新的なソリューションを探ります。 トレースヘ

                                                                      AWS Kinesis 上で OpenTelemetry トレースヘッダを伝搬する方法: パート1 | SpeedData
                                                                    • RStudioのProfileを使ってみる - Qiita

                                                                      RStudio v1.0から正式サポートされた機能の中に、profvisを使ったパフォーマンスプロファイリングがあります。 ここでは、このprofileに関してさっくり触れてみたいと思います。 何ができるの? 解析対象のソースに対して、行単位or呼び出される関数単位でメモリの消費と処理時間を計測することができます。 行単位の結果はFlame Graphタブ、関数の呼び出し毎の結果はDataタブで見ることができます。 ※ちなみに、ほぼ10msec程度で処理が終わるようなものは、プロファイラが処理を拾えないので何もできないので、ご注意を。。。 実際にプロファイリングしてみましょう ということで、実際にやりつつ詳しく追ってみましょう。 今回はテストで次のようなスクリプトをまずは走らせてみましょう。 この例は、Rで処理が遅くなるのでやっちゃダメな典型例としておなじみの ベクター処理が可能なものをf

                                                                        RStudioのProfileを使ってみる - Qiita
                                                                      • 比較的簡単にできるGraphQLのパフォーマンス改善 - Qiita

                                                                        はじめに 最近フロントエンドの通信をGraphQLに統一すべく頑張っているのですが、元々フロントエンドメインで開発していたのもありパフォーマンス度外視のBFF実装をしてしまいました。今回はGraphQLのパフォーマンス改善のために取り組んだこと2つをまとめていきたいと思います。2つしか書かない分できるだけ丁寧に書いたつもりです。普段BFFをGo言語で実装してるためサンプルコードはGo言語で書きますが、Goがわからない人にもわかりやすく説明するので最後までお付き合いいただけると幸いです。 触れること 取得するフィールドの制限してオーバーフェッチングを防ぐ Dataloaderを利用したN+1問題の解決 触れないこと GraphQLの基礎的なこと スキーマ設計とか 外部ツールを導入して計測をしたりだとか 現状そこまでしてパフォーマンス改善を行なった経験がないため 導入コストが高そうなので今回は

                                                                          比較的簡単にできるGraphQLのパフォーマンス改善 - Qiita
                                                                        • カーネル密度推定(KDE)の高速化 - Qiita

                                                                          処理速度が遅い・・・ 以前の記事にした密度を色で表す散布図において、処理速度が遅いという問題があった。原因はカーネル密度推定の演算に時間がかかること。Rで行う場合はdensCols関数を用いるが、これがPythonでやるよりも圧倒的に速い(しかも標準搭載だから手軽)。 Pythonでも高速でプロットする方法を調べた。 Pythonでの実装方法 kern_smoothを用いる fastkdeを用いる 各手法の比較 コードのみ カーネル密度推定の高速化方法 仕組み 高速化のカギは「ビン化」、「2D高速フーリエ変換」らしい。 ビン化概算 2Dカーネル密度の正確な推定値の近似により密度計算を高速化します。最初の2Dビン化が(x、y)ポイントで実行され、ビンカウントの行列を取得します。 次に、2D高速フーリエ変換を使用して、各グリッドの密度値を計算するための離散畳み込みを実行します。密度値の4乗根は

                                                                            カーネル密度推定(KDE)の高速化 - Qiita
                                                                          • 【Unity】Unityで画像データ(Texture2D)を動的に表示する際の罠 【メモリリーク】 - Qiita

                                                                            ■ 概要 本記事では、 Unityで画像(Texture2D)を動的に表示させる際に気を付けたい メモリリークの話と、その解決方法 について紹介したいと思います。 みなさんもUnityでアプリ開発をしていると、 「画像を動的に表示したい。または画像を切り替えたい」 って場面が山ほどあると思います。 特に私の場合実装の都合上、外部の画像ファイルを「StreamingAssets」に格納してそれを動的に切り替えることが多いのですが、そこにメモリリークの罠がありました。 (こんなの知ってて当たり前だよって方もいらっしゃるかと思いますが、個人的には実装に詰まったポイントでもあったので、ここに書き認めておこうかと思います。) ■ 環境 Unityバージョン : Unity2022.3.13f1 プロジェクトテンプレート : 3D ■ 実装 まずは今回のサンプル実装から。 こんな感じでボタンを押したら

                                                                              【Unity】Unityで画像データ(Texture2D)を動的に表示する際の罠 【メモリリーク】 - Qiita
                                                                            • 複数台で parallel_tests を動かす場合でも、実行時間ベースでテストを分割できるようにする - Qiita

                                                                              複数台で parallel_tests を動かす場合でも、実行時間ベースでテストを分割できるようにするRubyRSpecparallel_tests RSpec を並列に実行してくれるツールとして parallel_tests があります。このツールは CPU 数などの情報から、自動で最適な並列数で RSpec などを複数同時に実行してくれるツールです。これにより通常よりも早くテストを完了することが出来ます。 Qiita でも parallel_tests を使いつつ、複数のマシンを利用して CI での自動テストを回しています。(テストが大量にあるのと、テストを動かすマシンスペックの都合などで、こういう構成になっています。) こういう感じで並列にテストを回す場合は、実行時間ベースでテストを分割して割り振ることで、テスト完了までの時間が早くなります。parallel_tests かつ複数マシ

                                                                                複数台で parallel_tests を動かす場合でも、実行時間ベースでテストを分割できるようにする - Qiita
                                                                              • data.frameの高速演算には列ごとならlapply、行ごとならReduceを使おう - Qiita

                                                                                Rに少し慣れると、計算速度を早くしたいと感じるのはよくあることです。 Rを使っていてよく扱うのは行列状のデータです(matrixやdata.frame) matrixの場合 よく言われるのは 行列用の関数 $\geq$ apply $\geq$ for です(参考)。 matrixを列ごとに演算 library(microbenchmark) # ベンチマークようのパッケージ set.seed(123) # 乱数を固定 x <- matrix(runif(10000), 100, 100) # テストデータの生成 plot(microbenchmark( #ベンチマークとその結果のプロット colSums = colSums(x), apply = apply(x, 2, sum), "for" = { y <- numeric(nrow(x)) for(i in 1:ncol(x)) y

                                                                                  data.frameの高速演算には列ごとならlapply、行ごとならReduceを使おう - Qiita
                                                                                • 大量で巨大なcsvをRで読み込む時の最適解【vroom,readr,data.table】 - Qiita

                                                                                  拝啓Rユーザーの皆様。 巨大なデータ、大量のデータを扱うときにどのようにお読み込みなされていますでしょうか。 単純なcsvデータであればdplyr::read_csv()か、もしくはread_delim()かと思います。 データを分析する中で「ファイル数が大量」であり「合計すると総サイズが巨大」になるようなデータと対面することもあるかと思います。 このような大量のファイルを読み込む方法と、読み込み速度およびその後の処理速度を検証した結果から最適な組み合わせを提案したいと思います。 はじめに結論から 今回の検証では「メモリサイズを無視して実行速度の面から考えると」 が最も最適でした。 検証コードは最後にまとめています。 読み込み方法の紹介 読込方法には、本記事の初めに紹介したdplyrパッケージのread_csv関数か、もしくはdata.tableパッケージのfread関数が利用されているよ

                                                                                    大量で巨大なcsvをRで読み込む時の最適解【vroom,readr,data.table】 - Qiita