我正在尝试制作一个可以通过浏览器访问的在线gcc编译器。对于所有这些,我在窗口XP上使用php,cygwin。实际上,我正在将浏览器上的代码窗口提供给用户。
一般流程如下:
- $source写入 .c 文件
- .c文件编译由GCC编译器和.exe文件创建 向用户
- 显示.exe文件的输出。
应该在c程序中没有用于测试的读取函数,我只使用一个printf
语句。
问题是:
如果有大约30个同时请求意味着30个用户在同一时间点编译程序,那么它将在大约15秒内产生输出,这太长了。
有人可以帮我减少这个时间吗?欢迎每个建议
我可以只读取 C 程序的输出而不制作.exe文件吗?
一个起点可能是探索分布式构建系统。
在Windows上,我知道一个(非自由的)解决方案是Incredibuild。大约 8 年前,我们将它用于我们的一个项目,它将清洁和构建时间从 25 分钟减少到大约 5 分钟。这里有一个评论。
现在,当我刚刚搜索其他替代方案和非Windows解决方案时,我也找到了distcc。
这里还有一个关于 Incredibuild 替代品的讨论(看似古老)。
如果每个编译请求的 C 源代码几乎相同,则可以使用启用编译器缓存的构建系统。 例如 waf 和 cmake。他们可以利用先前建筑物的副本来加快编译速度。