我需要将一些perl CGI脚本转换为二进制文件。 但是,当我将100kb的脚本转换为二进制时,它变成大约2-3Mb。这就是理解为什么,因为编译器必须打包执行脚本所需的所有工具。 问题是关于服务器上加载页面的时间,它们是二进制的。比方说,如果我有一个二进制perl脚本"脚本",它回答ajax请求和二进制权重大约3mb,它会反映在AJAX请求上吗?例如,如果某些用户连接较低,他们会等待多年才会转移所有这些3Mb吗?或者,服务器WON&t; T将所有3mb发送给用户,但只是一个答案(简短的XML / JSON)?
另一种情况是我有HTML页面,这是由服务器上的这个二进制perl脚本生成的。用户将他的浏览器发送到脚本,对3Mb进行加权,并且必须获得HTML页面。用户是否会再次等待,直到整个脚本被加载(每个字节形成那些3Mb),或者只是等待完全加载HTML页面所需的时间(例如,70Kb),其余的质量将在仅限服务器端并且不会让用户等待它?
谢谢!
答案 0 :(得分:2)
将perl脚本包装/打包成二进制文件对于便于传输或安装非常有用。有些人甚至将它用作(琐碎的)混淆形式。但最后,在每次CGI调用开始时将二进制文件“解包”成可用组件的行为实际上会让你失望。
如果您希望在CGI情况下提高性能,则应认真考虑使脚本持久化以消除启动时间的技术。 mod_perl是解决此问题的较旧解决方案。更现代的解决方案包括FCGI或将您的脚本包装到它自己的迷你Web服务器中。
现在,如果您要将脚本交付给客户并且PHB 需要换行以进行混淆,那么请注意,如果您编写脚本,启动性能只会发生一次坚持不懈。
答案 1 :(得分:2)
或者,服务器WON&t; T将所有3mb发送给用户,但只是一个答案(简短的XML / JSON)?
此。
服务器执行程序。它将程序的输出发送给客户端。
通过捆绑脚本可能会对性能产生影响(它可能是负面的),但这与服务器运行程序需要多长时间无关,而与需要多长时间无关通过网络将数据发送回客户端。