GDB下的Linux线程性能非常快,否则极慢
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了GDB下的Linux线程性能非常快,否则极慢,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1071字,纯文字阅读大概需要2分钟。
内容图文
![GDB下的Linux线程性能非常快,否则极慢](/upload/InfoBanner/zyjiaocheng/947/e9bcbf818cfb4495909d6325188394c0.jpg)
我正在研究在Linux上运行的嵌入式C应用程序.我最近在使用pthread时遇到了一些非常奇怪的性能问题.
我的系统有8个线程来回传递信息,这些信息使用pthread互斥锁进行保护.独立运行我的应用程序时,使用互斥锁时线程性能会非常慢.在500 MHz ARM板上,锁定和解锁互斥锁约200次需要2.4秒,而在200MHz板上则需要更长的时间.
奇怪的是,当我在GDB下运行应用程序时,该应用程序运行得非常快. GDB运行时,同一代码块独立花费了2.4秒的时间,大约需要2毫秒.
我已经在2种不同的基于ARM的SBC上测试了此行为:一种运行带有gcc 3.4.4和glibc 2.3.2的Linux 2.4.26,另一种运行带有gcc 3.4.4和glibc 2.3.2的Linux 2.6.21 .
经过大量测试后,我怀疑问题出在pthreads库中,而这恰好是两块板的工具链上的相同版本.这将是不幸的,因为我的SBC供应商没有为他们的董事会提供各种各样的工具链,而且恐怕他们都会遇到这个问题.如果没有在GDB下运行,是否有人对导致性能下降的原因有任何见解?
解决方法:
ARM上的pthread从来没有问题,我怀疑您的代码中存在竞争或初始化问题.尝试将您的代码减少到可重现该问题的最少代码.
您应该在此处或您认为相关的部分发布此代码.
而且不要忘记,通常是select isn’t broken
您在使用LinuxThreads还是NPTL(“内核”线程?)
如果使用后者,则也可以尝试跟踪应用程序.
内容总结
以上是互联网集市为您收集整理的GDB下的Linux线程性能非常快,否则极慢全部内容,希望文章能够帮你解决GDB下的Linux线程性能非常快,否则极慢所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。