Skip to content

工作量估计 src/FrontEnd/workEstimate.cpp #17

@lxx2013

Description

@lxx2013

目前采取的策略中使用了workComputeWEST_astwalk两个函数, 以及全局变量work来增量计算每个 flatNode 的工作量.

可以考虑修改的方式:

  1. 合并上述2个函数为1个函数. 实际阅读代码过程中也发现WEST_astwalk的一些分支并不会被访问到. 若将这两个函数合二为一, 则只需递归执行workCompute即可
  2. 把全局自增变量work修改为 node 的成员变量 修改以后也便于输出工作量估计的可视化, 例如下面的例子
 double i = 1.0; // work :2 
 int a = 1; // work:1
 if( false || true ){
      /*****/ // work: x
 }else{
    /*****/ // work:y
 } // work: (x+y)/2

预计在 node 上增加的结构:
int workEstimate(){
  if(this.work) return this.work; //可以考虑加缓存机制, 若不会出现重复估计的情况, 不加缓存也行
  else
    /*****/
} //

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions