c – 影响性能之前Unix中的线程限制

c – 影响性能之前Unix中的线程限制,第1张

概述我对线程有一些疑问: >在降低应用程序性能之前,进程允许的最大线程数是多少? >如果有限制,如何更改? >在多线程应用程序中是否应该运行理想数量的线程?如果它取决于应用程序正在做什么,你能引用一个例子吗? >影响这些性能/线程限制的因素有哪些? 这实际上是一组没有绝对答案的难题,但以下内容应该是适当的近似值: >它是应用程序行为和运行时环境的函数,只能通过实验推断出来.通常会有一个阈值,在此阈值之 我对线程有一些疑问:

>在降低应用程序性能之前,进程允许的最大线程数是多少?
>如果有限制,如何更改?
>在多线程应用程序中是否应该运行理想数量的线程?如果它取决于应用程序正在做什么,你能引用一个例子吗?
>影响这些性能/线程限制的因素有哪些?

解决方法 这实际上是一组没有绝对答案的难题,但以下内容应该是适当的近似值:

>它是应用程序行为和运行时环境的函数,只能通过实验推断出来.通常会有一个阈值,在此阈值之后,当您增加线程数时,性能实际上会降低.
>通常,在找到限制后,您必须弄清楚如何重新设计应用程序,使每线程成本不高. (请注意,对于某些域,您可以通过重新设计算法并减少线程数来获得更好的性能.)
>没有通用的“理想”线程数,但有时您可以在特定运行时环境中找到应用程序的最佳线程数.这通常通过实验完成,并在改变基准的同时绘制基准测试结果:

>线程数.
>缓冲区大小(如果数据不在RAM中)以某个合理的值递增(例如,块大小,数据包大小,高速缓存大小等)
>改变块大小(如果您可以递增地处理数据).
> OS或语言运行时的各种调整旋钮.
>将线程固定到cpu以改善位置.

>影响线程限制的因素有很多,但最常见的因素是:

>每线程内存使用量(每个线程使用的内存越多,产生的线程越少)>上下文切换成本(使用的线程越多,切换的cpu时间就越多).>锁争用(如果依赖于大量粗粒度锁定,增加线程数会增加争用.)> *** 作系统的线程模型(如何管理线程?每线程成本是多少?)>语言运行时的线程模型. (协同程序,绿线程, *** 作系统线程,火花等)>硬件. (多少cpu /核心?是否超线程?是否适当地对线程进行负载均衡等)>等等(还有更多,但以上是最重要的.)

总结

以上是内存溢出为你收集整理的c – 影响性能之前Unix中的线程限制全部内容,希望文章能够帮你解决c – 影响性能之前Unix中的线程限制所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1212725.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存