2
|
Christoph Wolf · 技术社区 · 7 年前 |
![]() |
1
4
虽然这并不理想,但取决于实现细节,我们可以看看
所以简单的回答是,在这个版本的框架中(
这个电话有多贵的问题取决于您的用例。您应该衡量代码是否在该方法中花费了大量时间,以及缓存是否有帮助。 表演 是否值得缓存结果的问题在于,衡量调用与缓存查找所需的时间。我测试了5种场景:
后果
通常,缓存只会将调用时间减半,并且没有对缓存中的大量数据执行测试,因此性能可能会随着类的增多而降低。我认为不值得缓存结果。 密码
|
![]() |
2
3
它不会自动缓存。您必须权衡调用的费用与缓存所需的内存。如果有很多这样的检查,我希望字典中的缓存可以提高性能。 |
![]() |
3
2
似乎所有其他的答案都有点近视。类型实际上由运行时缓存,但在
在这样的情况下,实际上很容易判断是否存在任何缓存。 考虑以下代码,并在实际运行之前尝试猜测输出是什么:
当然,更仔细地检查
代码的输出当然是:
|
![]() |
David Sundström · 子视图在xcode游乐场中不工作 7 年前 |
|
James Wang · 为什么我的超类要调用我的子类方法? 7 年前 |
![]() |
J. Cal · 子类无法继承超类字段[重复] 7 年前 |
![]() |
Narwhal · 如何在UIView的子类中正确初始化传递的属性? 7 年前 |
![]() |
Sami · 超类行为未按预期应用于企鹅对象 7 年前 |
![]() |
SanMu · 对子类使用SKSpriteNode的属性 7 年前 |