代码之家  ›  专栏  ›  技术社区  ›  Kevin Rood

最大螺纹极限?

  •  12
  • Kevin Rood  · 技术社区  · 15 年前

    在哪里可以找到有关iPhone应用程序中允许的最大线程数的文档,以及您对线程性能的体验?

    谢谢您!

    3 回复  |  直到 13 年前
        1
  •  24
  •   Chris S    14 年前

    This page on the Mac Dev Center 为您提供线程分配成本,您可以从以下方面进行估计:

    1KB内核成本
    iPhone上的1MB堆叠空间
    创建时间90微秒

    指南建议,如果生成50个线程,您将要求操作系统分配应用程序50MB(128MB)的RAM:

    这个内存的空间被留出了 在线程的进程空间中 创建时间,但实际页面 与那个记忆相关的不是 在需要之前创建

    那似乎是一大笔钱-而且 this blog post 详细地说,如果你试图使用超过46MB的RAM,你的应用程序将被冻结,然后在5-10秒后被操作系统杀死。

    所以实际上,15-20个线程是一个安全的数量,但这当然取决于每个线程在执行的操作中消耗了多少内存,以及线程完成的速度。一旦线程完成,内存就会被释放。

        2
  •  3
  •   Mirko Froehlich    15 年前

    恐怕我不能给你指任何相关的文件。但是你需要记住,iPhone是一个资源受限的设备,所以你可能希望在产生新的线程方面相当保守。我自己也尽量不去细看几根线。不过,我还是很想知道实际限额是多少。

        3
  •  1
  •   Hamidreza Vakilian    13 年前

    以下是我的经验: 我的应用程序创建了40个并发nsOperations,顺便说一下,在执行时最大的活动字节只有8 MB…我认为这真的取决于您的线程实现的效率,以及它们在执行时消耗了多少内存,当然还取决于它们任务的复杂性……使用工具监视应用程序的分配和性能。