Skip to content

Commit a401568

Browse files
committed
Site updated: 2025-03-30 20:14:38
1 parent 55847c2 commit a401568

14 files changed

Lines changed: 7 additions & 17 deletions

File tree

-8.76 KB
Loading
-518 KB
Loading
-587 KB
Loading
-440 KB
Loading

2025/03/30/iOS/AutoreleasePool:iOS 内存管理乐章中的隐秘旋律/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ <h2 id="性能优化:TLS-机制解析"><a href="#性能优化:TLS-机制解
183183
</tr>
184184
</tbody></table>
185185
<h2 id="常见误区与最佳实践"><a href="#常见误区与最佳实践" class="headerlink" title="常见误区与最佳实践"></a>常见误区与最佳实践</h2><p>在实际开发中,我们经常会遇到一些对 AutoreleasePool 使用的误区。其中最常见的就是在循环中过度使用 @autoreleasepool,例如:</p>
186-
<figure class="highlight cpp"><table><tr><td class="code"><pre><span class="line"><span class="keyword">for</span> (<span class="type">int</span> i = <span class="number">0</span>; i &lt; <span class="number">10</span>; i++) &#123;</span><br><span class="line"> @autoreleasepool &#123;</span><br><span class="line"> Person *per = [[Person alloc] init];</span><br><span class="line"> <span class="comment">// 对 per 进行的操作……</span></span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
186+
<figure class="highlight objc"><table><tr><td class="code"><pre><span class="line"><span class="keyword">for</span> (<span class="type">int</span> i = <span class="number">0</span>; i &lt; <span class="number">10</span>; i++) &#123;</span><br><span class="line"> <span class="keyword">@autoreleasepool</span> &#123;</span><br><span class="line"> Person *per = [[Person alloc] init];</span><br><span class="line"> <span class="comment">// 对 per 进行的操作……</span></span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
187187

188188
<p>这段代码中的 per 对象是 __strong 类型,它会在每次循环结束时立即释放,无需等待自动释放池的清理。这种情况下添加 @autoreleasepool 并不会带来任何性能优势,反而会因为频繁创建和销毁自动释放池而增加开销。</p>
189189
<p>因此,@autoreleasepool 的使用需要遵循以下原则:</p>
-438 KB
Loading
-465 KB
Loading
-499 KB
Loading
-525 KB
Loading
-500 KB
Loading

0 commit comments

Comments
 (0)