【问题标题】:What about the server uptime when using CGI-binaries?使用 CGI 二进制文件时服务器的正常运行时间如何?
【发布时间】:2015-12-22 03:26:25
【问题描述】:

我需要将我的一些 perl CGI 脚本转换为二进制文件。 但是当我将一个 100kb 的脚本转换为二进制文件时,它变成了大约 2-3Mb。这是可以理解的,因为编译器必须在执行脚本所需的所有工具中打包。 问题是关于页面在服务器上加载的时间,当它们是二进制时。说,如果我有一个二进制 perl 脚本“脚本”,它回答 ajax 请求并且二进制权重约为 3mb,它会反映 AJAX 请求吗?例如,如果某些用户的连接速度较低,他们会等待很长时间,直到所有这些 3Mb 都被转移?或者,服务器不会将所有 3mb 发送给用户,而只是一个答案(无论是简短的 XML/JSON)?

另一种情况是当我有 HTML 页面时,它是由服务器上的这个二进制 perl 脚本生成的。用户将他的浏览器寻址到脚本,该脚本的权重为 3Mb,并且在他必须获得一个 HTML 页面之后。用户是否会再次等待,直到整个脚本被加载(从那些 3Mb 中的每个字节),或者只是等待完全加载 HTML 页面所需的时间(例如,70Kb),其余的质量将在仅限服务器端,不会让用户等待?

谢谢!

【问题讨论】:

    标签: ajax perl xmlhttprequest server cgi


    【解决方案1】:

    将 perl 脚本包装/打包成二进制文件有助于轻松传输或安装。有些人甚至将其用作一种(微不足道的)混淆形式。但最后,在每次 CGI 调用开始时将二进制文件“解包”为可用组件的行为实际上会减慢您的速度。

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

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

    【讨论】:

      【解决方案2】:

      或者,服务器不会将所有 3mb 发送给用户,而只是一个答案(无论是简短的 XML/JSON)?

      这个。

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

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

      【讨论】:

        猜你喜欢
        • 2013-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-10
        • 1970-01-01
        • 2020-01-24
        • 1970-01-01
        相关资源
        最近更新 更多