我正在使用premake5版本0.06来生成一个vs2012项目,该项目在目录树中包含大约2个级别的3000多个文件。
该项目包含6个配置和3个平台。
烘焙配置大约需要2分钟,然后大约10秒钟来处理操作并写出解决方案和项目文件。
我想知道这是否是这个文件数量的预期时间,或者我是否可以优化我的预制脚本以改善烘烤时间?
我使用了一些覆盖,并通过使用通配符来包含我的文件。
files {
path.join(includeDir,"**.h"),
path.join(includeDir,"**.inl"),
path.join(srcDir,"**.h"),
path.join(srcDir,"**.inl"),
path.join(srcDir,"**.c"),
path.join(srcDir,"**.cpp"),
}
将所有选项置于一个过滤器下是否更好? 为了方便设置,我可以通过不同的功能设置选项,因此有效地为不同的选项多次列出相同的过滤器,例如
setupOption1 = function(args)
filters( "platforms:win" )
--set up option1
end
setupOption2 = function(args)
filters( "platforms:win" )
--set up option2
end
--with the project
project("myProject")
--global setup
language "C++"
kind "WindowedApp"
--individual options
setupOption1(args)
setupOption2(args)
答案 0 :(得分:0)
这确实听起来有点长,但由于这仍然是alpha版本,因此现在没有受到密切监控。有an open pull request to reduce memory usage可能有帮助吗?
一般情况下,较少的过滤器应该有所帮助,但如果它产生了显着的差异(除非你真的有批次),我会感到惊讶。
答案 1 :(得分:0)
我发现在文件过滤器中使用**通配符可以减慢构建速度。
class Tryit {
public static void main(String args[])
throws java.io.IOException {
char ch, answer;
Scanner scanner = new Scanner(System.in);
while(true) {
System.out.println("Please Enter a Secret Character for another user to guess.");
answer = scanner.next().charAt(0);
System.out.println("There is a Secret character for you...Can you guess it: \n");
ch = scanner.next().charAt(0);
if(ch == answer)
{
System.out.println("** Right **");
}
else
{
System.out.println("** Try Again **");
}
}
}
}
如果我注释掉这些过滤器,现在配置大约需要30秒。