【问题标题】:why arc enabled application is running slow [closed]为什么启用弧的应用程序运行缓慢[关闭]
【发布时间】:2012-08-22 15:54:13
【问题描述】:

为什么启用 arc 的应用程序运行缓慢。我已对所有应用程序源文件 .h 和 .m 文件进行了更改。但是应用程序启动非常缓慢。

我已经为优化中的 Debug 选项提供了 -O0 值,并为发布提供了 -os 值。但是我的应用程序仍然无法正常运行。请告诉我如何快速启动应用程序。

【问题讨论】:

  • 您的应用程序基本上会很慢,内存管理的类型(ARCMRC)不会影响您的应用程序的速度。
  • 没有我的应用程序没有 ARC 运行得很快。只有应用程序启动需要时间。我已经用 MRC 测试了应用程序,只有它运行得很快。当我只使用 ARC 运行应用程序时,它没有启动应用程序。如果我先运行 MRC 应用程序,然后再启动 ARC 应用程序,那么这两个应用程序都可以正常启动。如果我不先启动 MRC 应用程序,它就不会启动 ARC 应用程序。
  • 我确信@H2CO3 有宝贵的建议。 H2,你能听到我说话吗?
  • ARC不是运行时功能(它不是GC 或相同),因此ARC 不会影响应用程序的运行时速度。问题可能出在其他地方,但我们对 init 进程一无所知,即您在开始时加载的内容。
  • holex,这不是真的。保留和释放在运行时执行,并且比您预期的要慢。如果 ARC 插入不同的调用来保留和释放(它会!),那么您的程序将花费或多或少的时间来执行。我已经在许多不同的程序中看到了这种情况。在大多数情况下,差异很小,但在少数情况下可能会很大。在发布此类内容之前请三思。

标签: performance automatic-ref-counting


【解决方案1】:

0) 您需要分析您的应用程序以确定它在哪里花费时间,并找出与您的期望不符的地方。 Instruments.app 非常适合帮助您解决此问题 - 学习使用它。

1) 如果这是一个快速的“我刚刚将我的项目转换为 ARC,现在它在没有其他更改的情况下要慢得多。”那么你应该从 point#0(上图)开始。 …但您可能也有兴趣阅读performance and semantic differences in ARC and MRC programs。 “开启” ARC 肯定会引入开销。这将如何影响您的程序……好吧,您必须衡量和了解它的工作原理。 MRC 本身并不是快速程序的公式——您需要了解更多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多