使用 CGI 二进制文件时服务器正常运行时间如何?

What about the server uptime when using CGI-binaries?

我需要将一些 perl CGI 脚本转换为二进制文件。 但是当我将 100kb 的脚本转换为二进制文件时,它会变成大约 2-3Mb。这就是为什么,因为编译器必须将执行脚本所需的所有工具打包进去。 问题是关于页面在服务器上加载的时间,当它们是二进制时。比如说,如果我有一个二进制 perl 脚本 "script",它响应 ajax 请求并且二进制权重约为 3mb,它会反映在 AJAX 请求上吗?比方说,如果一些用户的连接速度很慢,他们会等很久直到所有这些 3Mb 都被传输吗?或者,服务器不会将所有 3mb 发送给用户,而只是一个答案(短 XML/JSON 无论如何)?

另一种情况是当我有 HTML 页面时,它是由服务器上的二进制 perl 脚本生成的。用户将他的浏览器定位到脚本,该脚本的权重为 3Mb,之后他必须获得一个 HTML 页面。用户是否会再次等待,直到加载整个脚本(每个字节都构成这 3Mb),或者只是等待加载 HTML 页面(比如 70Kb)和其余部分所需的时间将 运行 仅在服务器端,不会让用户等待吗?

谢谢!

Wrapping/Packaging 将 perl 脚本转换为二进制文件对于便于传输或安装很有用。有些人甚至将它用作一种(微不足道的)混淆形式。但最后,"Unpacking" 在每次 CGI 调用开始时将二进制文件转换为可用组件的行为实际上会减慢您的速度。

如果您希望在 CGI 情况下提高性能,您应该认真考虑使脚本持久化以消除启动时间的技术。 mod_perl 是这个问题的旧解决方案。更现代的解决方案包括 FCGI 或将您的脚本包装到它自己的迷你 Web 服务器中。

现在,如果您要将脚本交付给客户并且 PHB 需要 包装以进行混淆,那么请放心,启动性能下降只会发生一次,如果你写的脚本是持久的。

Or, the server WON'T send all the 3mb to a user, but just an answer (short XML/JSON whatsoever)?

这个。

服务器执行程序。它将程序的输出发送到客户端。

捆绑脚本可能会对性能产生影响(这可能是负面影响),但这与服务器 运行 程序花费的时间有关,与此无关处理通过网络将数据发送回客户端所需的时间。