アペックス速度テスト–システムを行います。Debug()コストCPUの制限?

Apex Speed Test Experiment:
このブログはApex Speed Test Experimentの一部です。
これらの実験は、コードを書いている間に何か間違っていることを確認しますか? 何を書くのが良いのか、何ではないのですか? あなたの単一行のコードはCPUの制限を殺していますか?
私は見つけたものは何でも実験をしています。 これらの実験に追加できるものがあれば、ここで大歓迎です
#CodeShouldNotEatCPU#CPUScientist

私たちの実験:
この実験では、ifシステムであることを確認します。デバッグはあなたのCPU時間を食べているかどうか。

コンピュータ、ブラウザ、Salesforce組織、および2000リードレコードが必要です。

始めましょう:
この実験では2000件のリードレコードを取得しました。 これらのレコードを照会し、ループを反復処理しています。 開発者組織でこのクラスを作成します。

https://gist.github.com/TheVishnuKumar/fe5b64dd906bb9964ec450f9f403a343

実験1:
この実験ではデバッグを使用していません。 開発者コンソールを開きます。 今すぐ匿名の実行ウィンドウを開きます。 (このオプションはデバッグメニューにあります。)
このコードApexspeedexperiment_1をコピーします。runexperiment1();開発者コンソールから実行します。 私はこの方法を5回呼び出し、ここに結果があります。

結果:平均所要時間は29.2ミリ秒です。

実験2:
この実験ではシステムデバッグを使用しています。 開発者コンソールを開きます。 今すぐ匿名の実行ウィンドウを開きます。 (このオプションはデバッグメニューにあります。)
このコードApexspeedexperiment_1をコピーします。runexperiment2();開発者コンソールから実行します。 私はこの方法を5回呼び出し、ここに結果があります。

結果:平均所要時間は110ミリ秒です。

結論:
私たちの実験によると、システム。デバッグ消費CPUの制限。
1. 本番環境で必要なデバッグを使用することは良いことです。
2. API応答にデバッグを使用しないでください。 Apiの応答が大きすぎる可能性があります。
3. デバッグでレコードインスタンス全体を印刷しないでください。
4. 大規模なデバッグが必要な場合は、本番環境でカスタム設定を使用してデバッグを印刷します。 経験値:
if(isDebugOn){
システム。debug(‘あなたのデバッグ’);
}
5. コードを本番環境にデプロイする前に、不要なデバッグを削除します。

注:ロギングがオフになっている場合、コールは引き続き発生します。 コードに記述されているコード行が実行され、実行時間に対してカウントされる場合。
Salesforce開発者ドキュメントによると、
msg引数が文字列でない場合、debugメソッドは文字列を呼び出します。文字列に変換するvalueOf。 文字列。valueOfメソッドは、使用可能な場合は引数に対してtoStringメソッドを呼び出し、引数がユーザー定義型の場合はオーバーライドされたtoStringメソッドを呼び出します。 それ以外の場合、使用可能なtoStringメソッドがない場合は、引数の文字列表現を返します。 ApexコードのログレベルがDEBUG以上に設定されている場合、このdebug文のメッセージがdebugログに書き込まれます。
上記のプロセスはCPU時間を消費します。

Apex Speed Test実験に参加してくれてありがとう。 あなたが心の中で他の実験を持っている場合。 私に知らせてください。 私は実験を行い、ここでブログを共有します。

0to1Code.Com

You might also like

コメントを残す

メールアドレスが公開されることはありません。