我该在哪里找到关于iPhone应用程序允许的最大线程数的文档?另外,你有什么关于线程性能的经验吗?
谢谢!
我该在哪里找到关于iPhone应用程序允许的最大线程数的文档?另外,你有什么关于线程性能的经验吗?
谢谢!
Mac Dev Center上的这个页面提供了您可以估算线程分配成本的信息:
内核占用1kb
iPhone上的堆栈空间为1mb
创建时间为90微秒
该指南建议,如果您生成50个线程,则将要求操作系统为您的应用程序分配128mb内存中的50mb:
此内存的空间在线程创建时设置在进程空间中,但与该内存相关联的实际页面直到需要时才会创建
那似乎是相当大的一笔金额 - 这篇博客文章详细介绍说,如果您尝试使用超过46mb的内存,您的应用程序将冻结,然后在5-10秒钟后被操作系统杀死。
因此,安全起见,最好保持在15-20个线程左右,但这当然取决于每个线程在执行操作时消耗的内存量以及线程完成的速度。内存在线程结束时被释放。
很抱歉我无法为您提供相关文档。但是需要注意的是,iPhone是一种资源受限设备,因此您可能希望在生成新线程时保持相当谨慎。我个人建议不要超过几个线程。但我很想知道实际限制是什么。