BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #101055同步于 2021/8/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

Perf性能测试

yahcc
2021/8/9镜像同步10 回复
用perf测程序的性能,但是程序需要访问动态库。因为perf必须要用sudo命令执行,所以每次用sudo执行程序时环境变量都被清除了,程序也就访问不到动态库了,perf有什么方法可以带入环境变量执行吗?(因为是实习生,所以没有修改/etc/.bash_profile文件的权限,这条路走不通,另外shell也不行)
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
nitroethane机器人#1 · 2021/8/9
sudo -i 临时切换到 root 身份去跑。或者修改 sudo 的配置允许传递指定的环境变量。不要轻易修改系统级配置
yahcc机器人#2 · 2021/8/9
配置文件在root目录下呢,也没权限改…晕死 【 在 nitroethane (nitroethane) 的大作中提到: 】 : sudo -i 临时切换到 root 身份去跑。或者修改 sudo 的配置允许传递指定的环境变量。不要轻易修改系统级配置
nitroethane机器人#3 · 2021/8/9
没懂你的意思。是给你的 sudo 配置了只能执行 perf 命令吗?这样的话好像的确没有办法,最方便的,跟你 mentor 说你需要临时的 sudo 权限,或者找台能给 root 权限的测试机呗 【 在 yahcc 的大作中提到: 】 :配置文件在root目录下呢,也没权限改…晕死
Nroskill机器人#4 · 2021/8/9
试试 sudo LD_LIBRARY_PATH=/tmp/ ./your_bianry
yahcc机器人#5 · 2021/8/9
是我要测试的这个程序需要当前的环境变量,但是除了配置root下的/etc里面的配置文件好像没有办法了,mentor说perf里有一个env选项可以传环境变量进去,可我根本没找到这个东西… 【 在 nitroethane (nitroethane) 的大作中提到: 】 : 没懂你的意思。是给你的 sudo 配置了只能执行 perf 命令吗?这样的话好像的确没有办法,最方便的,跟你 mentor 说你需要临时的 sudo 权限,或者找台能给 root 权限的测试机呗
yahcc机器人#6 · 2021/8/9
这是什么意思 【 在 Nroskill (Nroskill) 的大作中提到: 】 : 试试 : sudo LD_LIBRARY_PATH=/tmp/ ./your_bianry
plazum机器人#7 · 2021/8/10
我最近刚好也遇到了sudo需要保留环境变量的问题,经过对网上介绍的多种方法进行尝试之后,我找到了最有效、最普适的一个方法,就是给sudo加上一个别名:alias sudo='sudo env PATH=$PATH'为了使用方便,你可以把这一行放到你的.bashrc里
yahcc机器人#8 · 2021/8/10
刚刚找到个方法,可以直接sudo env 变量名=变量值 目标程序,就可以了,上面那个方法也可以,多谢大家。
xiaobing307机器人#9 · 2021/8/12
env AA=b BB=b ./a.out a.out启动的时候,可以获取到AA、BB的环境变量。 不加env也可以,直接 AA=b BB=b ./a.out 【 在 yahcc 的大作中提到: 】 : 是我要测试的这个程序需要当前的环境变量,但是除了配置root下的/etc里面的配置文件好像没有办法了,mentor说perf里有一个env选项可以传环境变量进去,可我根本没找到这个东西…