ViewControllers,内存消耗和代码效率

我的应用程序具有以下布局/流程:

在此处输入图像描述

LandingVC :新用户首次运行应用时将看到的页面。 此页面将解释该应用程序的用途,并有2个按钮:登录和注册

LoginVC :用户将使用他/她的电子邮件和密码登录

RegisterVC :用户将使用他/她的电子邮件和密码进行注册

MainVC :标签栏视图控制器,在以下情况下将重定向用户:

  • 用户首次成功注册
  • 用户成功登录
  • 用户已登录

如果用户未登录,则应将其重定向到LandingVC。

我处理它的方式如下:

在appDelegate.swift中,我检查用户是否登录。

在此处输入图像描述

如果用户已登录,我将MainVC设置为根控制器

如果用户未登录,则将LandingVC设置为根控制器

问题A:一切都运行得很好,但由于我对iOS开发还不熟悉,我担心如果我在内存消耗和代码效率方面提出/推送/解除ViewControllers的方式是正确的。 你怎么看? 我是弄错了还是我走在正确的道路上?

为了衡量它,我按照以下程序:

使用iPhone XiOS模拟器中运行应用程序。 用户最初没有登录,因此我使用了相同的流程3次 :LandingVC – > LoginVC – > MainVC。

结果如下:

在此处输入图像描述

ps1:为了得到结果我在xCode中使用了“ Debug Navigator ”选项卡。

在此处输入图像描述

为了validation在整个流程中没有ViewController被解除,我使用了“View Memory Graph Hierarchy”:

在此处输入图像描述

正如您所看到的,我浏览的每个ViewController都有3个实例(顺便说一下,MainVC是MainTabBarController,它由HomeViewController,FavouritesViewController,TrendingViewController和SettingsViewController组成)。

问题B:有没有办法可以从内存中释放[remove / pop / dismiss / etc] ViewControllers但仍然有相同的结果?

问题C:在该流程之后,内存从55.4 MB增加到68.1 MB是否正常?

ps2:所有UI都是以编程方式构建的。 没有故事板。

在此先感谢,并为长篇文章感到抱歉。