某个项目中,部分页面使用了RN进行开发。预加载这些就不提了,就是正常的init一个RCTView这些流程去加载的,但是项目总发现,RN返回到原生界面的时候,内存不释放,导致多次进出RN界面的时候,内存一直上涨没下降。
后来查看了相关代码,发现RCTBridge中有个invalidate可以释放RN页面中的内存,亲测,返回后,内存大小回到刚进RN页面。如果没有采取预加载这些的话,没什么大问题,如果缓存了bridge或者view的话,需要针对invalidate后重新初始化即可。
某个项目中,部分页面使用了RN进行开发。预加载这些就不提了,就是正常的init一个RCTView这些流程去加载的,但是项目总发现,RN返回到原生界面的时候,内存不释放,导致多次进出RN界面的时候,内存一直上涨没下降。
后来查看了相关代码,发现RCTBridge中有个invalidate可以释放RN页面中的内存,亲测,返回后,内存大小回到刚进RN页面。如果没有采取预加载这些的话,没什么大问题,如果缓存了bridge或者view的话,需要针对invalidate后重新初始化即可。