图一 flutter的三棵树
答案是无法直接打印出,因为该各个widget的构建、布局、和渲染是相互并存交叉的。
而是只能通过注释掉该widget的构建,并打印对比注释前后渲染一帧所需的时间估算渲染时间差,如下代码
@override
void initState() {
super.initState();
final startTime = DateTime.now().microsecondsSinceEpoch;
WidgetsBinding.instance?.addPostFrameCallback((_) {
// 在每一帧渲染后调用
final endTime = DateTime.now().microsecondsSinceEpoch;
print('one frame cost:${endTime-startTime} mcrosencond');//打印出第一帧渲染所需要的时间
});
}
或者通过dev tools 里面的performance layer的图层来分析