当有30个同步程序时,减少C程序的编译时间

时间:2012-05-15 10:57:06

标签: php gcc windows-xp cygwin

我正在尝试制作一个可以被浏览器访问的在线gcc编译器。对于这一切,我在窗口XP上使用php,cygwin。实际上我将浏览器上的代码窗口提供给用户。


一般过程如下:

  1. $ source写入.c文件
  2. .c文件由gcc编译器编译并创建.exe文件
  3. .exe文件的输出显示给用户。
  4. 假设c程序中没有用于测试的读取函数我只使用一个printf语句。


    问题是:

    如果有大约30个同时请求意味着30个用户在相同的时间点编译程序,那么它将在大约15秒内产生输出,这太长了。

    有些人请帮我减少这个时间。欢迎提出每项建议

    我可以在没有制作.exe文件的情况下阅读C程序的输出。

2 个答案:

答案 0 :(得分:1)

一个起点可能是探索分布式构建系统。

在Windows上我知道(非免费)解决方案是Incredibuild。我们在大约8年前将它用于我们的一个项目,它将 clean和build 时间从25分钟减少到大约5分钟。对它进行了审核here

现在,我刚刚搜索了其他替代方案和非Windows解决方案,我也找到了distcc

此处还有一个关于alternatives to Incredibuild的讨论(看似陈旧)。

答案 1 :(得分:0)

如果每个编译请求的C源代码几乎相同,则可以使用启用编译器缓存的构建系统。 E. g。 waf和cmake。他们可以使用前一个建筑的副本来加速编译。