mirror of
https://github.com/zeek/zeek.git
synced 2025-10-16 13:38:19 +00:00
$ZAM_PROFILE_ALL set tells ZAM to profile function bodies even if not executed
This commit is contained in:
parent
c11c2830b1
commit
b3dacce3e1
1 changed files with 7 additions and 3 deletions
|
@ -82,6 +82,7 @@ void estimate_ZAM_profiling_overhead() {
|
||||||
#ifdef ENABLE_ZAM_PROFILE
|
#ifdef ENABLE_ZAM_PROFILE
|
||||||
|
|
||||||
static std::vector<const ZAMLocInfo*> caller_locs;
|
static std::vector<const ZAMLocInfo*> caller_locs;
|
||||||
|
static bool profile_all = getenv("ZAM_PROFILE_ALL") != nullptr;
|
||||||
|
|
||||||
#define DO_ZAM_PROFILE \
|
#define DO_ZAM_PROFILE \
|
||||||
if ( do_profile ) { \
|
if ( do_profile ) { \
|
||||||
|
@ -117,6 +118,8 @@ static std::vector<const ZAMLocInfo*> caller_locs;
|
||||||
#define ZAM_PROFILE_PRE_CALL
|
#define ZAM_PROFILE_PRE_CALL
|
||||||
#define ZAM_PROFILE_POST_CALL
|
#define ZAM_PROFILE_POST_CALL
|
||||||
|
|
||||||
|
static bool profile_all = false;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
using std::vector;
|
using std::vector;
|
||||||
|
@ -144,7 +147,7 @@ void report_ZOP_profile() {
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( int i = 1; i <= OP_NOP; ++i )
|
for ( int i = 1; i <= OP_NOP; ++i )
|
||||||
if ( ZOP_count[i] > 0 ) {
|
if ( ZOP_count[i] > 0 || profile_all ) {
|
||||||
auto CPU = std::max(ZOP_CPU[i] - ZOP_count[i] * CPU_prof_overhead, 0.0);
|
auto CPU = std::max(ZOP_CPU[i] - ZOP_count[i] * CPU_prof_overhead, 0.0);
|
||||||
fprintf(analysis_options.profile_file, "%s\t%d\t%.06f\n", ZOP_name(ZOp(i)), ZOP_count[i], CPU);
|
fprintf(analysis_options.profile_file, "%s\t%d\t%.06f\n", ZOP_name(ZOp(i)), ZOP_count[i], CPU);
|
||||||
}
|
}
|
||||||
|
@ -465,7 +468,8 @@ void ZBody::ReportExecutionProfile(ProfMap& pm) {
|
||||||
|
|
||||||
if ( dpv[0].num_samples == 0 && prof_vecs.empty() ) {
|
if ( dpv[0].num_samples == 0 && prof_vecs.empty() ) {
|
||||||
fprintf(analysis_options.profile_file, "%s did not execute\n", func_name.c_str());
|
fprintf(analysis_options.profile_file, "%s did not execute\n", func_name.c_str());
|
||||||
return;
|
if ( ! profile_all )
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int total_samples = ncall + ninst;
|
int total_samples = ncall + ninst;
|
||||||
|
@ -477,7 +481,7 @@ void ZBody::ReportExecutionProfile(ProfMap& pm) {
|
||||||
fprintf(analysis_options.profile_file, "%s CPU time %.06f, %" PRIu64 " memory, %d calls, %d sampled instructions\n",
|
fprintf(analysis_options.profile_file, "%s CPU time %.06f, %" PRIu64 " memory, %d calls, %d sampled instructions\n",
|
||||||
func_name.c_str(), adj_CPU_time, tot_mem, ncall, ninst);
|
func_name.c_str(), adj_CPU_time, tot_mem, ncall, ninst);
|
||||||
|
|
||||||
if ( dpv[0].num_samples != 0 )
|
if ( dpv[0].num_samples != 0 || profile_all )
|
||||||
ReportProfile(pm, dpv, "", {});
|
ReportProfile(pm, dpv, "", {});
|
||||||
|
|
||||||
for ( auto& pv : prof_vecs ) {
|
for ( auto& pv : prof_vecs ) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue