过程间分析和过程内分析有什么区别?

Ada*_*min 5 static-analysis compiler-optimization

我进行了大量搜索以找到过程间分析和过程内分析之间的区别。据我所知,过程内分析适用于单个过程,而过程间分析适用于所有过程。我仍然不清楚,更具体地说,这种过程间分析是如何应用于所有过程的?

有人能给我解释一下吗?

Boy*_*ema 5

程序间(想想互联网网络的网络,与内部,单个网络)分析是对多个函数进行操作的分析,例如以下内部生产优化:

function main() {
   return getConstant() * rand()
}

function getConstant() {
   return 42
}
Run Code Online (Sandbox Code Playgroud)

可以内联到:

function main() {
   return 42 * rand()
}
Run Code Online (Sandbox Code Playgroud)

以及以下Intra程序优化:

function getNrOfSecondsInWeek() {
  secondsAMinute := 60
  minutesAnHour := 60
  hoursADay := 24
  daysAWeek := 7
  return secondsAMinute * minutesAnHour * hoursADay * daysAWeek;
}
Run Code Online (Sandbox Code Playgroud)

可以内联到:

function getNrOfSecondsInWeek() {
  return 604800;
}
Run Code Online (Sandbox Code Playgroud)