私は、データベースへの書き込みにスリックを使用して、トラブル遅い実行する統合テストで何が起こっているのかを考え出すを抱えています。しかし、私は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. DNNサイトの低速パフォーマンスを診断するSQL Serverをデバッグします。
- 2. MVVM Lightツールキットでパフォーマンスが低下することはありませんか?
- 3. デバッグ情報がコンパイラの処理速度を低下させますか?
- 4. Bluemix:アプリケーション診断情報
- 5. itterrowsパフォーマンスが低下し、エラーメッセージが表示される
- 6. 多くのコアでプロセスを実行すると、Pythonのパフォーマンスが低下することがありますか?
- 7. document.addEventListener( "Mousemove")はWEBGLのパフォーマンスを低下させることができますか?
- 8. このモジュールのデバッグ情報にソース情報がありません - PDBが正常にロードされました
- 9. DLR - スタックトレースにデバッグ情報が表示されないのはなぜですか?
- 10. このパフォーマンスが低下するのはなぜですか?
- 11. 例外がキャッチされたときにデバッグ情報が表示されない
- 12. Silverlightのパフォーマンスと診断ツール
- 13. CrystalReportsに診断ログがありますか?印刷時に特定のフィールドが表示されない
- 14. インデックスパスの行が表示されず、詳細情報が表示されない場合があります。
- 15. 最低レベルがデバッグのときに情報レベルのメッセージが記録されないのはなぜですか?
- 16. Visual Studio 2015診断ツールウィンドウが表示されません
- 17. C#コンソールアプリケーションでシステム診断情報を表示する際に問題が発生する
- 18. デバッグ情報が表示されないEclipse
- 19. Visual Studio 2015 Enterpriseで診断ツールが表示されない
- 20. Console.logに非表示のオブジェクト情報が表示されます
- 21. eMMCがLinuxで診断テストとパフォーマンステストを実行するためのユーザスペースツールはありますか?
- 22. MSSQL:last_user_updateはインデックスのパフォーマンスが低下することを意味しますか?
- 23. テンプレートを使用すると、より正確な診断エラーメッセージが表示されますか?
- 24. ビジュアルスタジオ2013のパフォーマンスと診断の並行処理でコールスタックが表示されない
- 25. Try Catchブロックが多すぎるとパフォーマンスが低下しますか?代替ソリューションはありますか?
- 26. HTMLディビーズで情報が失われることはありますか?
- 27. NASMとGCCのデバッグ情報がありません
- 28. SharePoint 2010:診断ログにエラーが表示されない
- 29. DirectShowのデバッグ情報(つまり、Quartz.pdb)はどこにありますか?
- 30. テーブルのパフォーマンスが低下します