首页 / 知识
关于多线程:测量Linux多线程应用程序的堆栈使用情况
2023-04-15 02:29:00

Measuring stack usage for Linux multi-threaded app我正在为Linux嵌入式平台开发多线程应用程序。 目前,我正在将每个线程的堆栈大小(通过pthread_set_attr)设置为一个相当大的默认值。 我想将每个线程的值微调为更小的值,以减少应用程序的内存使用量。 我可以通过反复试验的方法将每个线程的堆栈大小设置为逐渐减小的值,直到程序崩溃为止,但是应用程序使用约15个线程,每个线程具有完全不同的功能/属性,因此该方法将非常耗时。 我宁愿能够直接测量每个线程的堆栈使用情况。 有一些公用事业人士可以推荐这样做吗? (例如,我来自vxWorks背景,并且使用vxWorks shell中的" ti"命令直接提供了堆栈使用情况的统计信息以及任务状态的其他有用信息。) 谢谢 这是两个衡量Linux应用程序中(本机pthread)堆栈使用率的工具:
瓦尔格朗德 用法:
Valgrind是一种稳定而强大的工具,不仅可用于测量堆栈使用情况。它可能不支持所有嵌入式CPU型号。 堆放 用法:
Stackusage是专为测量线程堆栈使用量而设计的轻量级工具,对于配备glibc的大多数嵌入式Linux平台来说,它应该是可移植的。在这一点上,它可能不如Valgrind / drd那样经过充分测试或成熟。 完全公开:我是Stackusage的作者。 我不知道有什么好的工具,但是作为最后的选择,您可以在应用程序中包含一些代码来检查它,类似于以下内容:
在某些嵌套最深的函数中,必须调用check_stack_size()函数。 然后,作为线程中的最后一条语句,您可以将stack_max_size输出到某个地方。 stack_start变量必须在线程开始时进行初始化:
引用Tobi的答案:如果很难在线程初始化时设置变量,则可以随时使用 |
最新内容
相关内容
linux多线程下载命令?
linux多线程下载命令?,软件,工具,平台,中心,系统,代理,网络,网站,手机,官方网站,从linux服务器中下载或上传文件wget是linux下一个从网络上自linux查看多线程命令?
linux查看多线程命令?,系统,第一,线程,地址,数据,进程,命令,名称,软件,情况,如何查看linux服务器的cpu数量,内核数,和cpu线程数如何查看linuxlinux保留堆栈命令?
linux保留堆栈命令?,地址,工作,系统,信息,管理,命令,目录,代码,名称,连续,linux系统常用操作命令linux常用命令有pwd命令、cd命令、ls命令、calinux下载命令多线程?
linux下载命令多线程?,系统,单位,概念,数据,线程,进程,产品,地址,代码,状态,谁有linux下多线程库的源码啊,要确实可用的,确实可以免费下载的,linux命令和应用程序?
linux命令和应用程序?,软件,系统,环境,管理,基础,情况,位置,电脑,工具,中心,在linux下如何装应用程序?需要什么命令啊首先从官网下载hdf5,根据linux多线程跑命令?
linux多线程跑命令?,系统,代码,单位,地址,工具,入口,信息,管理,位置,服务,Linux多线程之同步互斥锁和读写锁:提供对临界资源的保护,当多线程试图linux内存情况命令?
linux内存情况命令?,情况,系统,信息,工具,总量,内存,命令,发行,环境,数据,linux系统怎么查看内存和CPU占用情况呀?1、要查看CPU使用情况,可以使Python3多线程爬虫讲解
Python3多线程爬虫讲解,代码,分时,系统,网络,状态,培训,做多,时间,线程,爬虫,多线程概述多线程使得程序内部可以分出多个线程来做多件事情,充什么是Python的多进程和多线程?
什么是Python的多进程和多线程?,代码,工作,线程,进程,培训,技术,系统,数据,通讯,任务,学Python的朋友听说过进程和线程吗?其实,不仅是Python,学Python的多线程
Python的多线程,数据,线程,状态,地址,时间,队列,标准,情况,概念,暂停,多线程类似于同时执行多个不同程序,多线程运行有如下优点:使用线程可以把Python 多线程与速度
Python 多线程与速度,代码,数据,项目,设计,有限,服务,生产,工作,受益,有望,问题:Python的总体性能较慢,有限的线程与孱弱的多处理能力成为其未Python 多线程死锁问题的巧妙解决
Python 多线程死锁问题的巧妙解决方法,异常,持有,代码,情况,信息,管理,数据,包装,策略,预期,死锁死锁的原理非常简单,用一句话就可以描述完。