1

实际上,我正在做一个实现编译器优化技术的重大项目。我已经知道现有的技术,但是我很困惑选择什么技术以及如何实现它。

4

4 回答 4

2

天,

你在说什么优化领域?

编译器优化,例如:

  • 循环优化
  • 数据流优化
  • 基于静态单一分配的优化
  • 代码生成器优化
  • 等等
  • 等等

或者优化编译器本身的性能,即它的工作速度?

于 2009-11-14T11:56:32.540 回答
1

假设您有一个要优化的编译器,如果它不是您编写的,请查看文档以查看缺少的内容。否则,如果它是你写的,你可以从最简单的开始。最简单的定义取决于您的编译器使用的语言。还是我错过了什么?

于 2009-11-14T09:51:02.710 回答
0

我认为您可能过度优化了您的问题。您是在尝试决定从哪里开始,还是在尝试确定某些优化是否值得实施而其他优化不值得?我会假设所有现有技术都有一席之地,并且根据它们遇到的代码是否有用。如果你决定先做哪一个,选择你能做的,然后去做。挑选低垂的果实。在你解决一个艰难的问题并跌跌撞撞并感到沮丧之前,先在你的口袋里赢几场。我认为真正的诀窍是在那里进行所有优化并工作,但想出一种方法来决定哪些优化为特定程序产生更好的效果,哪些阻碍了事情的发展。

于 2009-11-16T02:55:47.777 回答
-1

恕我直言,要做的是实现简单、明显的优化,然后让它休息。当然,尝试做一些奇怪而美妙的优化来纠正用户本可以编写得更好一点的东西是非常有趣的,但是如果你真的想在糟糕的编码或糟糕的设计之后尝试清理,用户总是可以超越你. 这是我最喜欢的例子。

我最喜欢的编译器优化的例子是 Fortran 编译器,它们竭尽全力扰乱代码以减少代码几乎不可能调试的几个假设周期,并​​且通常程序计数器在那里小于 1 %的时间,所以努力被浪费了。

于 2009-11-14T14:59:56.773 回答