You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

google-pprof检测到数值C++程序中__nss_database_lookup占大量时间的原因

异常剖析问题描述

基础环境与程序预期

  • 剖析工具:google-pprof 行级性能剖析
  • 程序属性:自研数值计算类C++程序
  • 运行系统:Ubuntu 20.04
  • 编译工具链:g++-7、g++-9
  • 预期程序逻辑:仅执行数值计算、内存分配、自定义C++数据类型传递操作,无UNIX系统用户、权限相关的业务处理逻辑

观测到的异常现象

剖析结果显示,程序累计63.6%的运行时间消耗在系统函数__nss_database_lookup上。该函数原生职责为处理passwd等UNIX系统数据库查询事务,和程序设计的预期行为存在明显偏差。
匿名化处理后的剖析统计输出如下:

Total: 1046 samples
665 63.6% 63.6% 665 63.6% __nss_database_lookup ??:0
107 10.2% 73.8% 193 18.5% file.h:1035
92 8.8% 82.6% 92 8.8% file.h:...
87 8.3% 90.9% 87 8.3% file.h:995
17 1.6% 92.5% 734 70.2% file.h:1128
...
注:输出涉及的函数名、文件名已按保密要求做匿名化处理

核心待解疑问

  • 该异常高时间占比的产生机制是什么?
  • 剖析结果中__nss_database_lookup的高占比,是否是google-pprof的工作机制导致的统计假象?
  • 若并非统计假象,该函数是否确实被高频调用,实际消耗了程序三分之二的运行时间?
  • 若该函数确实被频繁触发,具体的调用来源是什么?是否是自研C++类存在误调用逻辑?
  • 定位、排查该问题的具体操作步骤是什么?

内容的提问来源于stack exchange,提问作者Tom Ellis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.28 14:54:03