投稿日: May 13, 2020

お客様がコマンドラインを使用してプロファイリングエージェントを開始できるようにする -javaagent スイッチが Amazon CodeGuru Profiler に追加されたことをお知らせします。この新しい変更により、エージェントを実行するためにアプリケーションのコードを変更したり、依存関係を追加したりする必要がなくなりました。 

Amazon CodeGuru Profiler は、最もリソース集約型のコード行を見つけ、アプリケーションがリッチでインタラクティブで視覚に訴える形で時間を費やしている場所を示します。また、パフォーマンスに関する既知の問題に基づいて、ライブアプリケーションの非効率性を探し、それらを修正する方法を提案します。

-javaagent スイッチを使用したオンボーディングエクスペリエンスは、2 つのステップで実行されます。

  • ステップ 1 - アプリケーションの承認権限を設定します。 
  • ステップ 2 - -javaagent スイッチを使用して、プロファイリングエージェントでアプリケーションを実行します (エージェントのスタンドアロン JAR をダウンロードした後)。

-javaagent スイッチでエージェントを起動する主な利点は、コードを再コンパイルまたは変更せずに既存のアプリケーションをプロファイルできることです。エージェントをアプリケーション jar にビルドしたり、Amazon SDK の互換性のないバージョンについて考えたりする必要はありません。また、幅広いホスティング環境でプロファイリングを有効にすることもできます。 

以前の方法を使用してプロファイリングエージェントを開始する場合も、コードからプロファイリングエージェントを開始できます。カスタム認証、より詳細な制御、依存関係の自動更新設定などが必要な場合に役立ちます。また、CodeGuru Profiler Java エージェントをスタンドアロン Java エージェント JAR として提供するとともに、今日アプリケーションに追加できる JAR 依存関係も提供するため、どちらのアプローチを使用してもプロファイリングエージェントを開始できます。 

-javaagent コマンドラインスイッチを使用してエージェントの実行を開始するには、JVM ベースのアプリケーションを起動するときに、次のコマンドラインスイッチを追加する必要があります。

-javaagent:AmazonCodeGuruJavaProfiler-1.0.jar=groupName=profiling-group-name

以下に例を示します。

java -javaagent:AmazonCodeGuruJavaProfiler-1.0.jar=groupName=profiling-group-name \
-jar MyApplication.jar

内部では、CodeGuru Profiler は Java インストルメンテーション API を使用して、アプリケーションコードが呼び出される前に (たとえば、main() が呼び出される前に) プロファイラを起動します。このように、プロファイラはコマンドラインパラメータまたは環境変数で構成されるので、ソースコードを変更する必要はありません。 

Amazon CodeGuru について詳しくは、特徴ページをご覧ください。使用を開始するための詳細については、ドキュメントを参照してください。Amazon CodeGuru を使用しての、コードレビューの自動化とアプリケーションのプロファイリングの詳細については、AWS ML ブログをご参照ください。サービスチームへお問い合わせいただくには、Amazon CodeGuru 開発者フォーラムにアクセスしてください。