タグ

ブックマーク / engineering.grani.jp (5)

  • メモリダンプから.NETのメモリ状態を探りたい - Grani Engineering Blog

    こんにちは、@mayukiです。 以前、このブログにてダンプ解析入門 - Visual Studioでの可視化によるC#トラブルシューティングというスタックオーバーフローのような問題を調査する方法について触れましたが、今回はダンプを元にメモリ周りの状態を見ていく方法について調べたので少しまとめてみました。 長い時間実行するようなアプリケーション(アプリケーションサーバーなど)ではメモリの使用状況やメモリリークなどを調査したいというケースがたまにやってきます。そんなときにはプロセスのメモリダンプを取得して解析することで問題の原因がわかりそう…そんなシチュエーションで役立つかもしれません。 お品書き お品書き 前提 メモ: 64bit コンピューターで動作している32bit プロセスのダンプをとる ダンプのみどころ どのツールで解析すれば? Visual Studioを試してみる DebugD

    メモリダンプから.NETのメモリ状態を探りたい - Grani Engineering Blog
  • ダンプ解析入門 - Visual Studioでの可視化によるC#トラブルシューティング - Grani Engineering Blog

    CTOの河合(@neuecc)です。ある日のこと、アプリケーションが突然死!しょうがないのでサーバーに入ってイベントビューアーを見るとそこには…… 何の役にも立たない情報が並んでいるのであった。こんなんじゃ原因も分からず、どう対処もできない! という時に役に立つのがダンプです。ダンプさえあれば、クラッシュ時の情報が手に入り、遥かに解決に向かいやすくなります。ダンプ解析というとハードコアな印象もありますが、最近はツールが充実していることもあり、やってみると意外とイージーです。幾つかの実例とともに、どのように解析していくかを見ていきましょう。 ダンプを収集する クラッシュは突然に。やってくるので、まずはアプリケーションクラッシュと共に自動的にダンプが収集されるように設定しましょう。ダンプファイルがなければ話は始まりません。 ここではWindows Error Reporting (WER)を使

    ダンプ解析入門 - Visual Studioでの可視化によるC#トラブルシューティング - Grani Engineering Blog
  • LINQPadでAWS APIを5倍理解する - Grani Engineering Blog

    こんにちは。インフラ部の齋藤(@sri_1128)です。 今回はAWSAPIを扱うときにLINQPadを使うと何かと便利です。 という話をしたいと思います。 AWS APIの便利さと複雑さ 普段、Windows環境でAWSAPIを叩くときには、CUIで扱う場合にはAWS Tools for Windows PowerShell、C#から扱う場合にはAWS SDK for .NETを使います。 Windows環境からでも全く問題なく扱えますし、新サービス等への追従も早く、仕事をする上で欠かせない便利な存在です。いつもお世話になっております。 しかし一方で、APIのRequestに使うクラスやResponseで返ってくるクラスって結構ネストが深かったり複雑で、パッと見だとどう扱うべきなのか分かりづらいデータ構造になっているものが多いと感じます。 EC2インスタンス名の一覧を取得する。のよう

    LINQPadでAWS APIを5倍理解する - Grani Engineering Blog
  • 黒騎士と白の魔王を支えるDatadogを使ったモニタリング - Grani Engineering Blog

    はじめまして。開発部のid:guitarrapc_tech です。 今回、黒騎士と白の魔王を例にモニタリングをどのようにしているのか、どのように考えてサービス監視を行っているのか紹介したいと思います。 目次 目次 モニタリング モニタリングの不足 CBT で気づいたモニタリング不足 モニタリングサービスの要件と選定 モニタリングの分類 モニタリングをレイヤー分けして可視化する 1. サービスの全般的な状態 2. アプリケーションと相互関係にあるリソース状態 3. アプリケーションの詳細なメトリクス状態 4. 各ロールの詳細メトリクス イベント アラート まとめ 参考 モニタリング 「黒騎士と白の魔王」の開発からリリースにかけて、大きな課題であり続けたのが「どのようにサービスのモニタリングを行うか」でした。ここでいうモニタリングは、次の意味を持たせています。 役割 意味 現状把握 サービスが

    黒騎士と白の魔王を支えるDatadogを使ったモニタリング - Grani Engineering Blog
  • C#のswitch文のコンパイラ最適化について - Grani Engineering Blog

    CTOの河合(@neuecc)です。グラニもエンジニアブログはじめました!グラニの中心的テクノロジーであるC#関連は元より、Unity関連やUniRx、最近力を入れているVR関連についての情報を色々と発信していけたらと思っています。私自身は、思いたったときが書き時ということで、私が社内にふっと流したくなったものを、外向けに発信していこうかな、と思っています。 さて、今回のテーマはswitch文のコンパイル結果について。C#は割と素直なコンパイル結果(ILへの変換)を得られるのですが、一部のものはアグレッシブな変換を行います。有名所ではラムダ式のクロージャなどは、隠れたクラスを作ってくれる、作ってしまうなど、コードの見た目からイメージした通りではない結果を出力しますが、実はswitch文もかなりアグレッシブな変換を行います。そこで、今回はそうしたswitchの最適化を見ていきましょう。 なお

    C#のswitch文のコンパイラ最適化について - Grani Engineering Blog
  • 1