2009-09-19 71 views
10

在哪裏可以找到有關iPhone應用程序允許的最大線程數的文檔,以及您對線程性能有什麼經驗?最大線程限制?

謝謝!

回答

23

This page on the Mac Dev Center爲您提供了線程分配成本,這可以使一個估計的猜測來自:iPhone上
創建時間

1KB內核成本
1MB的堆棧空間90微秒

該指南建議你會要求操作系統分配你的應用程序50MB的128MB的RAM如果你產生50線程:

此內存的空間預留 在你的進程空間中的線程 創建時間,但與記憶相關的實際網頁 不 創建需要

這似乎是一個大的,直到他們金額 - 和this blog post進行了一些細節說,如果你想使用超過46MB的內存,你的應用程序將凍結,然後在操作系統5-10秒後被殺死。

所以真的15-20個線程是堅持的安全數量,但當然這取決於每個線程在執行的操作中佔用多少內存,以及線程完成的速度。一旦線程結束,內存將被釋放。

+0

非常好的細節 - 謝謝! – 2010-02-10 15:28:17

+0

這應該是一個「微」的標誌,而不是米。 啓動線程的時間不是90 MILLIseconds! – Adam 2010-07-09 12:50:45

+0

修正它從MS到微秒 – 2010-07-15 10:38:44

3

恐怕我不能指出你的任何相關文件。但是你需要記住,iPhone是一個資源受限的設備,所以你可能想要產生新線程非常保守。我會盡量不要自己去探討一些線索。不過,我仍然很想聽聽實際的限制。

+0

感謝您的意見。如果我從堆棧溢出(Apple?)之外的可靠來源找到任何可靠的建議,我會嘗試將其發回。 – 2009-09-21 23:35:31

1

這是我的經驗: 我的應用程序創建了40個併發的nsoperations,順便說一下,在執行時最大活動字節數僅爲8 MB ......我認爲這取決於您實現線程的效率以及多少它們在執行時消耗內存,並且因爲它們任務的複雜性...使用工具來監視應用程序的分配和性能。