概要 この記事では、プロファイリングツールであるperfまたはdtraceと、可視化ツールであるflamegraph-rsを使ったRustプログラムのパフォーマンス解析の手順をまとめています flamegraphを使うと、プロファイリングツールを使って記録されたスタックトレースの情報をグラフとして可視化することができます flamegraph-rsは特に使いやすく、cargoを通してインストールするだけでflamegraphの生成ができるようになります 環境 対象のOS: Ubuntu22.04, Windows 11 言語: Rust macOSでプロファイリングを行う場合は、SIP(Security Integrity Protection)というセキュリティシステムを無効化する必要があるため、自己責任でお願いします。 プロファイラーの準備 Ubuntuの場合 perf perfはli
はじめに これは ドリコム Advent Calendar 2021 の25日目です。 24日目は 吉岡ひろき さんの DynamoDBをゲームアプリで使う際の課題と対策(前編) です。 前編では理論を説明しましたので、この後編では実際の適用例について説明していきます。 適用例 ここまでスキーマ設計のための観点を記して来ましたが、アプリケーションの要件によってはすべての観点で最適な選択をできない場合があるので、優先順位の高い条件を満たすスキーマを選択することになります。以下では上述の観点を実際に利用して設計した例をいくつか示します。 例1. ランキング ユーザ間でスコアを競うイベントのランキングについて考えます。アクセスパターンは次の3つとします。 個々のユーザのスコアを加算する 上位100ユーザのスコアとニックネームと使用中のキャラクタを取得する ニックネームまたは使用するキャラクタ変更
以下のGIFを見てください! クレデンシャルを利用したaws cliを実行が、指紋認証だけで実現できています!このcli実行は、MFAを設定したIAM UserからIAM Roleにassume roleし、実行されています。 実現には以下の1Password Shell Pluginsを使っています。 設定してみる 公式ドキュメントに従って設定します。 注意点! MFAのワンタイムパスワードを1Passwordに設定する際に、属性名がOne-Time Passwordじゃないとプラグインが動作しません。 日本語設定しているとワンタイムパスワードという名前で作成されてしまう場合があるようです。One-Time Passwordにリネームしましょう。 感想 最高かよ。 MFAトークンの入力でいままでトータル2億年くらい時間ロスしていましたが、それが指紋認証でスッと完了します!爽快です! 余談
はじめに 数年前は私はメモ化警察でした。 「はーい、メモ化してなーい!」 脳死でメモ化してましたが、本当にメモ化って必要なのか考えるようになり、明確な答えを持たないまま、レビュー時にもメモ化が必要かという問いに「パフォーマンスに問題が出たら」という便利な言葉を使用し、逃げていました。 それはもう尻尾を巻いて。 そしてメモ化警察を退職しました。 煽りタイトルですが、いつメモ化すればいいかメモ化の基準とメモ化するかどうかの判断方法について、個人的に考察した考察記事となります。 今回はアニメーションなどなく、zen.devさんのようなWEBサービスを想定します。 この記事で取り扱わないこと Reactの書き方 メモ化の仕方 仮想DOMによる差分レンダリング Core Web Vitalsに関して メモ化の基準 早速結論ですが、レンダリング時に以下に当てはまる場合メモ化を検討するというのが私の結論
Spring Bootを2系から3系へバージョンアップしました。 自己紹介 こんにちは。プラットフォーム開発部/共通サービス開発グループ[^1][^2][^3][^4]/決済プラットフォームチームの竹花です。 今回は、決済プラットフォームのAPI・バッチに使用しているSpring Bootのバージョンアップを行った話について書きたいと思います。 解決したい課題・実現したいこと 当時使用していたSpring Bootが2系であったため、サポート期間等を鑑み3系にバージョンアップしたい。 伴って使用しているライブラリのバージョンアップも実施 ライブラリ 移行前(2系) 移行後(3系) Java 17 変更なし MySQL 5.7 8.0 Spring Boot 2.5.12 3.1.0 Spring Boot Security 2.5.12 3.1.0 Spring Boot Data JPA
開放閉鎖の原則 TypeScriptでSOLID原則SOLID原則のS「開放閉鎖の原則」について自分が理解している内容をまとめました。 2021年09月15日 O … Open-Closed Principle: 開放閉鎖の原則 オブジェクト指向の考え方を用いることによって、関連のあるデータ構造とそれを操作する手続きを結びつけて「オブジェクト」とし、それらオブジェクトを組み合わせてソフトウェアを設計・開発することができる。 関連のあるデータ構造とそれを操作する手続きの結びつけ方、オブジェクト同士の組み合わせ方について適切な取り決めを設け、よりよいソフトウェアを設計・開発するために考案された原則として「SOLID原則」が知られている。 SOLID原則は、ソフトウェアエンジニアRobert C. Martinに提唱された多くの設計原則を5つにまとめたものの頭文字をとって命名された。 S … S
事前知識編 システム開発するプログラマも読んでおいたほうがいい資料とか。 今時のシステムならまず仕様や運用に反映される。されてなかったらむしろこっちから確認取りに行った方がいい。 JOGAガイドライン 昔ガチャとかが問題になったときに出てきた協会のガイドライン。 オンラインゲーム安心安全宣言 オンラインゲームにおけるビジネスモデルの企画設計および運用ガイドライン ランダム型アイテム提供方式を利用したアイテム販売における表示および運営ガイドライン オンラインゲームガイドライン 開発環境編 GitHubみたいなPullRequestを出せる環境 GitだけじゃなくてGitHub。必然的に規模が大きくなるのでプルリク出して進めることになります。 CIまで設定をする 最初のうちにCircleCIのようなテストの自動実行する仕組みまで揃えてしまっておいたほうが良いです。後からだとそもそも対応できなく
「住所の揺らぎ程度のことにAIを使いたいだとかデジタル音痴」だの「住所の正規化なんてExcelで2時間あれば作れそう」だの、たいへんフットワークの軽やかな言説の数々に、位置情報界隈のみならず住所の正規化や名寄せに少しでも関わったことのあるエンジニアが総立ちでマサカリを投げていたのも記憶に新しい今日この頃ですが(2023年6月6日)、この手の騒動は周期的に起こってる印象です。 ということはつまり いつまで経っても解消されない、解決が困難な課題である その困難さが界隈以外に共有されていない であるわけで、その都度Twitterにトリビアが投下されてはTLが賑わい華やかではありますが、そろそろ自分の整理としてもどれだけ日本の住所システムがカオスで、その計算機的な処理がいかに困難かをメモっておこうかと思いました。 なおこの件については既にQiitaにGeoloniaの宮内さんが鼻血の出そうな良エン
こんにちは。カート決済部カート決済基盤ブロックの高橋です。 カート決済部では、現在Spring BootのJavaプロジェクトを運用しています。今回Spring Bootのバージョンアップを実施した際に発生した問題点と対応内容、注意点をご紹介します。加えて、使用しているライブラリなどのバージョンも上げているのでご紹介します。 アップデート前後のバージョン 種類 前バージョン 後バージョン Java 17 17 Spring Boot 2.7 3.0 Gradle 7.x 8.x SpringFox 3.0.0 - Springdoc-openapi - 2.1 openapi-generator 5.1 6.5 Spock Framework 2.1-groovy-3.0 2.4-M1-groovy-4.0 JavaはSpring Bootのバージョンアップ前からJava 17を使用してお
先日、次のような Tweet を見かけました TIL I discovered that TensorFlow.js uses an interesting trick to sniff your CPU architecture in WebAssembly. pic.twitter.com/LVyywIM48I — Robert Knight (@robknight_) January 4, 2023 面白かったので、なぜこうなるのかの解説と、ついでにこのテクニックを使った JIT 検知方法などについて紹介します。 JavaScript における低レイヤーの扱い JavaScript においては、挙動が比較的しっかりと仕様に定められているために、環境による振る舞いの違いはあまり発生しません。しかし、低レイヤーに降りるほど振る舞いは実装依存になり、環境差が発生する余地が出てきます。 一番
はじめに 自分がAWSをこれっぽっちも知らない頃、 ググって出てきたどこか知らんサイトからだと、「欲しい情報はこれじゃない」ってのが多くあった。 そんなこと繰り返していると エラー、トラブル時に即対応できない 間違って構築したせいで運用時に悪化してしまう 古いソースコードでエラーがでて動かない これで無駄な時間を過ごすことになる。 要は「ググって得たその情報で、作ったものは正しいのか?」 AWSは常にアップデートされ続ける 欲しい情報を手に入れるまで調べる時間を割くなら、 公式展開してるサイトから得たほうが正確である。 ということで、最速でAWSを攻略するサイトをまとめる。 この記事をブックマークでもしておくと、ググる手間も省けるだろう。 目次 AWSドキュメンテーション AWSサービス別資料 トレーニングライブラリ AWSブログ アーキテクチャーセンター ワークショップをする よくある質
DBMS に依存するロジックのテストを書く時、主に2つの手法があると思います。 Repository 層などを mock する Service 層のテストをする時は、その下位の Repository 層を mock して、DBMS に依存しない形にしてからテストする レイヤードなアプリケーションで適用できる手法 テスト実行時も DBMS を裏で動かして、それを使う 本番と同じスキーマを持つ DBMS に対して、実際に insert したり select してテストする DBMS は docker-compose upとかで事前に立ち上げておく 双方にそれぞれ良さがあって、プロダクトによってどっちでやるか変わってくると思います。 この記事では 2 の手法を Prisma でどうやるかについて紹介します。 前提 実際のテストコードの例 テストヘルパーを作る 別解: ヘルパーを自動生成する je
11月27日、国立代々木競技場第二体育館で「U18日清食品トップリーグ2022(女子)」の最終日が行われ、明星学園高校(東京都)が東京成徳大学高校(東京都)と対戦した。 【動画】明星学園vs東京成徳大のフルゲーム映像! 両チームともに今大会の初白星をかけて戦った試合は第1クォーター、東京成徳大に明星学園がリードを奪われる展開に。15-22で第2クォーターに突入するも、明星学園がディフェンスの強度を上げると、池田凜のバスケットカウントや中島つぐみの3ポイントシュートで点差を詰める。さらに、終盤には日部瞳の長距離砲も決まり、43-38と逆転して試合を折り返した。 迎えた第3クォーター、日部と中島が3ポイントを立て続けに沈め、明星学園がリードを拡大。東京成徳大の山宮好葉や原美月に得点を許すも、64-51と2ケタ点差で最終クォーターへ。第4クォーターでは池田がアシストに得点と存在感を放つと、東京成
文脈、背景や問題点の説明 マルチテナントを実装するうえで企業情報(以下company)単位で最小限の情報を扱うようにしたいがcompany単位にTableを作ったりDatabaseを作るのはALTERなどの運用が大変。 そこでRLSを採用するために実際の技術検証をした上での注意点と実際の運用について必要な情報をまとめる。 PostgreSQL 14を前提としている 公式ドキュメント CREATE POLICY 必ず一読はすること。 困ったとき、わからないときはまずは公式ドキュメントを都度見ること。 このドキュメントのゴール RLSの概要をつかめる RLSの最低限の注意点を理解し、実装時に罠を踏まない 自分たちでRLSのポリシー自体をメンテナンスすることができ、デバッグできる テーブル構成 create table if not exists company ( id uuid defaul
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く