Ios 哪一个是仪器的性能核心?

Ios 哪一个是仪器的性能核心?,ios,swift,cpu,background-process,dispatch,Ios,Swift,Cpu,Background Process,Dispatch,当我在iphonex上用11个CPU运行profile-in-instrument时。该CPU有两个性能内核和四个效率内核 请问是否有办法确定哪一个是性能核心?至于主线程,GCD会将主线程任务更多地放在性能核心上,而不是效率核心上吗 我很想知道这到底是怎么回事 GCD对不同类型的内核一无所知,GCD也不确定哪些代码在哪个内核上运行 GCD决定哪个队列获取哪个线程池的线程,以及哪个代码计划在队列的线程上运行 内核的线程调度程序决定线程何时运行以及在哪个内核上运行。内核还决定在哪个GCD线程池中有多

当我在iphonex上用11个CPU运行profile-in-instrument时。该CPU有两个性能内核和四个效率内核

请问是否有办法确定哪一个是性能核心?至于主线程,GCD会将主线程任务更多地放在性能核心上,而不是效率核心上吗

我很想知道这到底是怎么回事


GCD对不同类型的内核一无所知,GCD也不确定哪些代码在哪个内核上运行

GCD决定哪个队列获取哪个线程池的线程,以及哪个代码计划在队列的线程上运行

内核的线程调度程序决定线程何时运行以及在哪个内核上运行。内核还决定在哪个GCD线程池中有多少线程可用

主线程与其他线程一样,只是一个线程。一个线程获得多少CPU时间取决于它自己的优先级、其他线程的数量、它们的优先级以及为每个线程安排的工作负载量


由于A11允许所有6个内核同时处于活动状态,内核将决定哪个线程获得高性能内核,哪个线程只是低性能内核。高优先级线程和具有高计算负载的线程(那些希望经常运行并且通常在运行时耗尽其全部运行时间的线程)是高性能内核的首选。低优先级线程和计算工作量小的线程(那些希望不经常运行并且经常产生/阻塞的线程,尽管它们的运行时间还没有用完)是低性能内核的首选。但是,理论上每个线程都可以在任何内核上运行,因为如果线程正在等待运行,那么让内核闲置是愚蠢的,然而,低功耗内核通常是首选,因为这样可以降低功耗并增加电池运行时间。

GCD不知道任何不同类型的内核,GCD也不决定哪些代码在哪个内核上运行

GCD决定哪个队列获取哪个线程池的线程,以及哪个代码计划在队列的线程上运行

内核的线程调度程序决定线程何时运行以及在哪个内核上运行。内核还决定在哪个GCD线程池中有多少线程可用

主线程与其他线程一样,只是一个线程。一个线程获得多少CPU时间取决于它自己的优先级、其他线程的数量、它们的优先级以及为每个线程安排的工作负载量


由于A11允许所有6个内核同时处于活动状态,内核将决定哪个线程获得高性能内核,哪个线程只是低性能内核。高优先级线程和具有高计算负载的线程(那些希望经常运行并且通常在运行时耗尽其全部运行时间的线程)是高性能内核的首选。低优先级线程和计算工作量小的线程(那些希望不经常运行并且经常产生/阻塞的线程,尽管它们的运行时间还没有用完)是低性能内核的首选。尽管理论上,每个线程都可以在任何内核上运行,因为如果线程等待运行,那么让内核闲置是愚蠢的,但低功耗内核通常是首选,因为这样可以降低功耗并增加电池运行时间。

非常感谢您发表这篇有见地的文章。它完美地澄清了我的困惑,并从根本上纠正了我对GCD、线程优先级和未来总体线程的看法。非常感谢您的意见!非常感谢你发表这篇有见地的文章。它完美地澄清了我的困惑,并从根本上纠正了我对GCD、线程优先级和未来总体线程的看法。非常感谢您的意见!