代码之家  ›  专栏  ›  技术社区  ›  Brett Rigby

在Nant构建脚本中调用C代码-时间影响?

  •  1
  • Brett Rigby  · 技术社区  · 14 年前

    我的nant构建脚本中有一部分C代码,它运行并用我想要的任何消息更新控制台窗口的标题,这就是(并且运行得非常好):

        <script language="C#" > 
        <code unless="${string::ends-with(build.script.debug, 'off')}"> 
            [TaskName("consoletask")] 
            public class TestTask : Task 
            { 
                private string title; 
    
                [TaskAttribute("title", Required=true)] 
                public string Title 
                { 
                    get { return title; } 
                    set { title = value; } 
                } 
    
                protected override void ExecuteTask() { 
                    System.Console.Title = title; 
                } 
            } 
        </code> 
        </script> 
    

    不过,我的问题是,从Nant调用这个C代码是否会对整个构建脚本的总运行时间产生任何负面的时间影响。

    我试着通过使用和不使用C代码来测试这一点,这两者之间的差别是微乎其微的,但在我真正将其部署到脚本中之前,我希望得到一个更正式的答案,并对内部开发的潜在巨大系统的构建时间产生巨大的影响。

    编辑: 我更担心的是需要时间来解析/编译/执行C代码。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Lachlan Roche    14 年前

    在执行封闭任务时,nant将只编译一次这个c脚本,在本例中是“script”。编译后,生成的任务(testtask)被编译为clr代码,与任何其他程序集中的代码都没有不同。

    它通过codedom编译,generateinmemory=true。

        2
  •  1
  •   Henk Holterman    14 年前

    代码片段不包含I/O,除非您的buildscript每秒要多次更改该图块,否则没有理由相信这是可以测量的。