当前位置: 首页 > 面试题库 >

NSNotificationCenter与委派-哪个更快?

甘明朗
2023-03-14
问题内容

我已经阅读了很多有关每种方法的优缺点的信息,并且我知道委托通常是针对一个侦听器的,而通知则针对许多侦听器。问题在于性能。

我正在通过通知将麦克风的音频信号发送到另一个班级。我知道在这里我应该使用委托,但我的问题是:委托会更快吗?因为我可以看到我有一些帧速率问题(已减少),并且我想知道原因是否可能是使用通知
而不是 委托,还是没有关系?


问题答案:

代表的开销较少,因此执行速度更快。

但是,总的来说,您应该只在性能主题根本不存在的地方查看性能主题。对于一次性任务,例如发送通知与调用委托,这永远不会成为问题。但是,当您计划使用变量(取决于数据)插入数量或对于已获取或接收到数据的多个数据对象循环执行这些操作时,将无法预测会有多少个对象-
在某些情况下我会考虑性能优化。



 类似资料:
  • 我知道如何在直接依赖的ViewController之间建立“正常”委派。所以如果我说,我必须从一个视图发送一个消息到它上面的一个,我知道怎么做。但是,如果两者之间有更多的ViewControllers,我如何设置委托呢? 假设我有一个根据方案的设置: ViewController1->ViewController2->ViewController3(通过ButtonPressed)(通过Butto

  • java.util.Objects类使用了许多新方法进行了扩展 对象#RequireNonNullElse 分别 中的对象#RequireNonNullElseget()。 如果第一个参数为非空,则返回第一个参数,否则返回非空的第二个参数或supplier.get()的非空值 但新功能与类中已存在的可选#orelse和可选#orelseget重叠 中的新方法与相应的方法之间的唯一区别是,suppl

  • 问题内容: java中的继承和委托有什么区别? 如何在我的项目中使用以下示例?请你指导我。我了解继承,但对委托没有太多了解。因此,请给出适当的理由。我为什么要用这个? 问题答案: 当您委托时,您只是在调用一个知道必须做什么的类。您并不真正在乎它是 如何 执行的,您所 关心的 只是您正在调用的类知道需要做什么。 如果我是您,我将创建一个接口并命名该接口(或类似名称的接口),该接口具有一个名为的方法。

  • 问题内容: 我想向将在运行时生成的对象添加一些功能。但是,该对象的接口非常大(并且不在我的控制之下)。我想将对象包装在自己的类中,该类添加了我想要的功能并将标准接口功能委托给原始对象- 在Java中有任何方法可以执行此操作,而无需为每个对象创建一行复制粘贴委托方法接口中的方法? 我要避免的是: 我更喜欢: 问题答案: 听起来您需要动态代理并仅拦截要覆盖的方法。 动态代理类是实现在运行时指定的接口列

  • 问题内容: 我一直在阅读和学习有关Docker的知识,并试图正确选择要使用的Django设置。到目前为止,有: Docker Compose 或Dockerfile 我了解在中使用了,但是我不确定是否将所有内容放入一个大的Dockerfile中并用多个命令处理不同的映像是否是一个好习惯? 我想使用几个不同的图像,包括: 请提供关于使用 Docker 设置此类环境的最佳实践的建议。 如果有帮助,我在

  • 本文向大家介绍java 详解类加载器的双亲委派及打破双亲委派,包括了java 详解类加载器的双亲委派及打破双亲委派的使用技巧和注意事项,需要的朋友参考一下 java 详解类加载器的双亲委派及打破双亲委派 一般的场景中使用Java默认的类加载器即可,但有时为了达到某种目的又不得不实现自己的类加载器,例如为了达到类库的互相隔离,例如为了达到热部署重加载功能。这时就需要自己定义类加载器,每个类加载器加载