我的 logcat 中有一个警告:
W/art: Verification of void com.myapp.LoginFragment$override.lambda$logIn$5(com.myapp.LoginFragment, java.lang.Throwable) took 217.578ms
代码如下:
subscription = viewModel.logIn()
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
this::showStudioSelection,
error -> {
ErrorResponse errorResponse = ErrorResponseFactory.create(error);
if (errorResponse.code() == ApiResult.BAD_REQUEST) {
Snackbar.make(getView(), R.string.login_bad_credentials, Snackbar.LENGTH_LONG)
.setAction(android.R.string.ok, v -> {})
.show();
} else {
Snackbar.make(getView(), "Unknown error " + errorResponse.code(), Snackbar.LENGTH_LONG)
.setAction(android.R.string.ok, v -> {})
.show();
}
viewModel.updateLoginButtonState();
}
);
220 毫秒很多(我觉得我注意到该 fragment 的启动滞后)。
我使用的是 RxJava 和 retrolambda,但这不是唯一会弹出此消息的地方,所以我认为它没有直接关系。
我如何影响验证时间?是否值得?
它似乎与圈复杂度有关,因为我可以通过删除 if
中的 Snackbar.make
调用来摆脱警告干代码:
String errorMessage;
if (errorResponse.code() == ApiResult.BAD_REQUEST) {
errorMessage = getString(R.string.login_bad_credentials);
} else {
errorMessage = "Unknown error " + errorResponse.code();
}
最佳答案
关于android - 艺术 : Verification of X took Y ms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37006954/