我目前正在使用模块URI::URL URL从相对URL生成完整的URL; 然而,它并没有像我希望的那样快速运行。 有没有人知道另一种方法可能会更快?

===============>>#1 票数:4

刚发生在这篇文章中 ,指出了Perl的Redhat / Centos / Fedora实现中的缺点,它们深刻地影响了URI

如果您正在运行其中一种Linux版本,则可能需要从原始源(而不是RPM源)重新编译Perl。

我意识到在Redhat 5.2,Centos 5.2或Fedora 9上使用perl解释器运行perl代码的人很可能是受害者。 是的,即使您的代码不使用花哨的祝福/过载习语,许多CPAN模块也可以! 这个谷歌搜索显示1500多个模块使用祝福/过载成语,它们包括一些非常流行的,如URI,JSON。 ...

...此时,我决定从源代码重新编译perl。 虫子消失了。 而差异是令人震惊的。 一切都变得非常快。 CPU负载低于0.10,我们处理的数据速度提高了100倍到1000倍!

===============>>#2 票数:3 已采纳

以下代码应该有效。

$uri = URI->new_abs( $str, $base_uri )

您还应该查看search.cpan.org的URI页面

===============>>#3 票数:1

布兰登,我应该澄清一点,我无法保证相对路径会是什么样子。 它可能非常棘手(例如前面有斜线,没有斜线,有“../”等)。

彼得,这就是我现在正在使用的东西。 或者使用URI :: URL-> new($ path) - > abs更快?

===============>>#4 票数:1

可能有点依赖于你如何获得这两个字符串。 可能安全,防火的方法就是在URI :: URL或类似的库中,其中包括恶意的所有替代品都将被考虑在内。 也许速度较慢,但​​在某些环境中,子弹的速度会更快。

但是,如果你期望有一些简单而不棘手的东西可以看到它是以/,或者任何其他字符串开头的。 第一个将服务器名称+ url,第二个切断路径从基础uri直到进入其他两个替代方案之一,或者只是将其添加到基本URL。

===============>>#5 票数:0

也许我得到了错误的结束,但不会,

$full_url = $base_url . $relative_url

工作? IIRC Perl文本处理非常快。

Ah sure yes of course. 当然可以肯定是的。 对不起我无法帮助,我的Perl非常生疏。

  ask by lennysan translate from so

未解决问题?本站智能推荐: