- 主题:有没高效率的线程池实现?
这个应该是因为你用的是古代的牙膏厂 CPU,现代的 CPU,比如农企最新的 ryzen 5700g 这样的 CPU,它的计算核心提供两个译码器,开启超线程以后能够提升 20%-40%,你这样用是很浪费的。
顺便说一下,很多人喷牙膏厂的小核,但其实吧,不管是农企还是牙膏厂的大核,被分裂成两个超线程使用的时候,性能都还不如小核呢。
不过为啥我不喷农企呢,因为农企直接给 16 个大核,比牙膏厂给 8 个大核,16 个小核良心多了。
【 在 ylh1969 的大作中提到: 】
: 尤其是在有超线程的时候,把线程数定义为实核数,这样,看起来CPU使用率很低,实际已经用满了。
: 这办法我用过。
: 例如,8核16线程,你就设置8线程,CPU利用率看起来就在50%以下,实际性能可以达到100%。
: ...................
--
FROM 110.84.122.*
这种需求,多半是跑在 linux 服务器的需求是吧?
或许不要在自己应用层去处理,而是使用 linux 的 docker,可以配置使用的 CPU 时间比例,它底层使用的是 cgroups 来控制。
【 在 z16166 的大作中提到: 】
: 各自需求不同。
: 我只需要保证比如我的产品最多占用80%,给别人的产品留20%。
: 至于我的产品里哪个进程/线程占得多,内卷吧,自己优化去。
: ...................
--
FROM 110.84.122.*
我说这是十年前的情况。现在 CPU 已经改进,不太可能还是这样的情况。
如果被限制到 8 倍。那就需要考虑是不是自己程序写的有问题了。
【 在 ylh1969 的大作中提到: 】
: 你说的我有点听不懂。
: 我的测试是8核16超线程。
: 放8个线程,性能是单线程的8倍,CPU50%。放16线程性能还是8倍,CPU100%。如果需要75%,放12个线程,性能还是8。
: ...................
--
FROM 110.84.122.*