自从切换到JRE 6后,我的服务器代码缓存使用率(非堆)不断增长.我的应用程序在运行时创建了很多类,但这些类在GC过程中成功卸载.我可以看到这些类在gc日志中被卸载,而permGen的使用也保持不变.我特别确保在我的代码中,一旦我完成它们,这些类就是孤立的,所以他们正确地从permGen收集垃圾.
然而,代码缓存不断增长.切换到JRE 6后,我才意识到代码缓存.所以我想我的问题是:
使用颤振 1.20.2。
我的 Flutter 应用使用 Firestore 作为后端数据库。对于我正在使用的当前版本以及在此移动应用程序的整个开发过程中,我注意到如果我的应用程序在后台运行一段时间(可能是几分钟),那么当我将应用程序带回前台时,查询返回数据非常慢。这不会发生在 iOS 上。它只发生在 Android 上。
当我的应用忙于从 Firestore 检索数据时,我使用 CircularProgressIndicators。我正在使用固态管理设置,其中我的每个视图都有一个扩展 BaseModel 的模型:
class BaseModel extends ChangeNotifier {
ViewState _state = ViewState.Idle;
ViewState get state => _state;
bool isDisposed = false;
void setState(ViewState viewState) {
_state = viewState;
if (!isDisposed) {
notifyListeners();
}
}
@override
void dispose() {
isDisposed = true;
super.dispose();
}
}
Run Code Online (Sandbox Code Playgroud)
我的视图然后以以下方式使用我的视图特定模型:
@override
Widget build(BuildContext context) {
return BaseView<MyProfileModel>(
//onModelReady: (model) => model.initialise(Provider.of<User>(context, listen: false)),
onModelReady: (model) => model.initialise(),
builder: (context, model, child) …Run Code Online (Sandbox Code Playgroud)