Val*_*tin 8 performance multithreading cpu-speed
我听到大家都在谈论多线程如何提高性能.我不相信这一点,除非有我遗漏的东西.如果我有一个包含100个元素的数组并且遍历它需要6秒.当我在两个线程之间划分工作时,处理器将不得不经历相同的工作量和时间,除了它们同时工作但速度只有一半.不应该多线程使它更慢?既然您需要额外的工作分割说明吗?
sus*_*tus 15
对于迭代100个元素多线程的简单任务,任务不会提供性能优势.
迭代超过1000亿个元素并对每个元素进行处理,然后使用额外的CPU可能有助于缩短处理时间.例如,由于I/O,更复杂的任务可能会导致中断.当一个线程处于休眠状态,等待外设完成I/O(例如磁盘写入或键盘按键)时,其他线程可以继续工作.
对于处理器中有多个核心的CPU绑定任务,您可以在每个处理器核心上划分工作.如果您有两个核心,请将工作拆分为两个线程.这样你就必须全速运行.但是线程的创建成本非常高,因此您需要相当大的工作量来克服创建线程的初始成本.
您还可以使用线程来改善交互式应用程序中出现的性能(或响应性).您在后台线程上运行繁重的计算以避免阻止UI交互.您的计算不会更快完成,但您的应用程序没有那些"挂起",使其显得缓慢且无响应.
归档时间: |
|
查看次数: |
18939 次 |
最近记录: |