私は、データベースへの書き込みにスリックを使用して、トラブル遅い実行する統合テストで何が起こっているのかを考え出すを抱えています。しかし、私はSLF4Jを介して診断ログにアクセスする方法を理解できません。Slickテストで診断のデバッグ情報が表示され、パフォーマンスが低下することはありますか?
答えて
私は最終的には自分でこれを考え出した、との答えには2つのコンポーネントがあります。
悪いパフォーマンス
私は、パフォーマンスの低下は、非同期のAPIの同期テストの口座にあったことに気づきました。私はScalacheckプロパティベースのテストと一緒にScalatestを使用して、非同期要求にブロッキングfutureValue
アプローチを使用しています。何らかの理由で、私は500ミリ秒にPatienceConfiguration
のinterval
を設定していた、などあらゆるfutureValue
コールは、データベース自体は通常、ほとんどの20msの時で実行され、通常は< 10msの照会にもかかわらず、少なくとも半秒取っていました。私は最終的に2msに間隔を落とし、パフォーマンスが大幅に向上しました。
Scalatest 3は適切な非同期テストをサポートしていますが、現在3.0.0-M15ではGeneratorDrivenPropertyChecks
はasyncをサポートしていません。これはmight changeです。
診断ログは、私が"org.slf4j" % "slf4j-simple" % "1.7.12"
のSBT libraryDependencies
エントリとSLF4Jシンプルなログのバックエンドをインストールしました。私はそれがapplication.conf
を通じてsimple logger propertiesを設定することにより、適切に動作させることができませんでした。
私はSLF4J-simpleにデバッグモードでログインするためにorg.slf4j.simpleLogger.defaultLogLevel=debug
とし、その後SBTプロンプトでtest
を実行するようにJavaシステムプロパティを設定しました。これはSlickクエリーコンパイラの出力が不合理になったため、そのコンパイラのロガーのデバッグ出力をinfo
に戻しました。これは、余分な出力を大きく縮めました。プロパティーはorg.slf4j.simpleLogger.log.slick.compiler=info
です。この方法で接頭辞に一致するロガーレベルを変更することができます。
実際にプロパティを設定することは、ささいな問題ではないことが判明しました。 org.slf4j.simpleLogger.defaultLogLevel=debug
がない仕事をした追加することにより、タイプセーフの設定(test/resources/application.conf
)を経由してプロパティを設定
:私はいくつかのアプローチを試してみました。通常、これは設定が解析される前に、システムプロパティで設定されているものの場合であるので、私は、これはロガーの場合であると仮定します。
sbt -Dorg.slf4j.simpleLogger.defaultLogLevel=debug
でSBTを開始することにより、SBTが働いていた起動時にコマンドラインからプロパティを設定が、のみ SBTが
fork in test := false
を設定すると非フォークJVMでテストを実行している場合。javaOptions += "org.slf4j.simpleLogger.defaultLogLevel=debug"
を使用してSBTからプロパティを設定するはない仕事、フォークJVMかどうかをしました。
org.slf4j.simpleLogger.defaultLogLevel=debug
〜test/resources/simplelogger.properties
を追加することでプロパティを設定すると、forked JVMとunforkedの両方で機能します。
- 1. デバッグ情報がコンパイラの処理速度を低下させますか?
- 2. MVVM Lightツールキットでパフォーマンスが低下することはありませんか?
- 3. DLR - スタックトレースにデバッグ情報が表示されないのはなぜですか?
- 4. 例外がキャッチされたときにデバッグ情報が表示されない
- 5. インデックスパスの行が表示されず、詳細情報が表示されない場合があります。
- 6. CrystalReportsに診断ログがありますか?印刷時に特定のフィールドが表示されない
- 7. Silverlightのパフォーマンスと診断ツール
- 8. 最低レベルがデバッグのときに情報レベルのメッセージが記録されないのはなぜですか?
- 9. Console.logに非表示のオブジェクト情報が表示されます
- 10. テンプレートを使用すると、より正確な診断エラーメッセージが表示されますか?
- 11. ビジュアルスタジオ2013のパフォーマンスと診断の並行処理でコールスタックが表示されない
- 12. MSSQL:last_user_updateはインデックスのパフォーマンスが低下することを意味しますか?
- 13. SharePoint 2010:診断ログにエラーが表示されない
- 14. Try Catchブロックが多すぎるとパフォーマンスが低下しますか?代替ソリューションはありますか?
- 15. HTMLディビーズで情報が失われることはありますか?
- 16. utf8で「Сannotヘッダー情報を変更する」というエラーが表示されますが、これを克服する方法はありますか?
- 17. Railsにログインすると、パフォーマンスが低下しますか?
- 18. Javaクラスをオーバーライドするとパフォーマンスが低下しますか?
- 19. "this->"を使用するとパフォーマンスが低下しますか?
- 20. アプリケーションのパフォーマンスが低下する
- 21. Django:多くのシグナルがパフォーマンスを低下させますか?
- 22. OpenGLではプログラムのパフォーマンスが低下しますか?
- 23. SQL Serverのパフォーマンスが低下する原因は何ですか?
- 24. SQLサーバーのパフォーマンスが低下する理由は何ですか?
- 25. TensorFlowは単純なネットワークではパフォーマンスが低下しますか?
- 26. SQLクエリのUnicode文字が原因でDBのパフォーマンスが低下する可能性がありますか?
- 27. モバイルデバイス情報が「設定されていません」と表示されます
- 28. レール3.1のマウント可能なエンジンアプリでは、すべてのcssとjsがリクエストごとにロードされます。パフォーマンスを低下させたり、効率を低下させたりすることはありませんか?
- 29. SQLでレコードセットの数が増えるとアプリケーションのパフォーマンスが低下しますか?
- 30. SPARK:DRIVER MEMORYの数を増やすとパフォーマンスが低下する可能性がありますか?