Objective c 将编程UIView子类转换为基于Nib的UIView会导致严重的性能下降

Objective c 将编程UIView子类转换为基于Nib的UIView会导致严重的性能下降,objective-c,uiview,Objective C,Uiview,我正在构建一个应用程序,在一些滚动面板中显示大量(100-500)的小视图。 这些视图具有多个图像、文本标签等。 现在,我希望有更多的声明性和直观的视图设计器,并切换到UI生成器(xib/nib)。 但现在,我在打开场景时体验到了4-10倍的较慢性能。 我已经认识到,如果禁用UIView的自动布局选项,加载速度至少会加快两倍。但仍然比我以前编程时做的慢得多。 我可以猜测,使用带有约束的自动布局使得每一个实例化都要计算所有内容。 有没有人知道如何识别瓶颈的窍门?如何识别瓶颈:使用仪器。为什么不全部

我正在构建一个应用程序,在一些滚动面板中显示大量(100-500)的小视图。 这些视图具有多个图像、文本标签等。 现在,我希望有更多的声明性和直观的视图设计器,并切换到UI生成器(xib/nib)。 但现在,我在打开场景时体验到了4-10倍的较慢性能。 我已经认识到,如果禁用UIView的自动布局选项,加载速度至少会加快两倍。但仍然比我以前编程时做的慢得多。 我可以猜测,使用带有约束的自动布局使得每一个实例化都要计算所有内容。
有没有人知道如何识别瓶颈的窍门?

如何识别瓶颈:使用仪器。为什么不全部切换到集合视图。“那是最好的解决办法。”威勒克,你能再详细说明一下吗?您会推荐哪些工具来确定到底是什么让IB解决方案变慢?通常,您会在性能报告中看到,例如,一个视图的实例化花费了很多时间,但如何识别例如“自动布局”是瓶颈,或者特定约束比其他约束更糟糕?谢谢,@GeneCode,不知道这个选项(在使用Obj-C进行了几年的业余编程后仍在学习)。不确定它是否适合我的需要-我有非常动态的视图布局,但我会尝试研究它。我说的是这个应用程序,以防你有兴趣看到我的挑战:我检查了你的应用程序,我想你可能正在渲染所有的“卡片”,对吗?如果是这样的话,你需要改变方法,这样你就可以只画出出现在窗口中的卡片,并且只对用户可见。这是tableview和collectionview的基本操作——它们实现了某种可重用单元方法。这样,ios就不会被显示所有的东西所拖累。如何识别瓶颈:使用仪器。为什么不完全改为集合视图呢。“那是最好的解决办法。”威勒克,你能再详细说明一下吗?您会推荐哪些工具来确定到底是什么让IB解决方案变慢?通常,您会在性能报告中看到,例如,一个视图的实例化花费了很多时间,但如何识别例如“自动布局”是瓶颈,或者特定约束比其他约束更糟糕?谢谢,@GeneCode,不知道这个选项(在使用Obj-C进行了几年的业余编程后仍在学习)。不确定它是否适合我的需要-我有非常动态的视图布局,但我会尝试研究它。我说的是这个应用程序,以防你有兴趣看到我的挑战:我检查了你的应用程序,我想你可能正在渲染所有的“卡片”,对吗?如果是这样的话,你需要改变方法,这样你就可以只画出出现在窗口中的卡片,并且只对用户可见。这是tableview和collectionview的基本操作——它们实现了某种可重用单元方法。这样,ios就不必为渲染所有内容而感到负担