PathAuto模块是内存消耗者吗?


9

我可能需要为当前项目使用PathAuto模块。在开发中使用它(作为管理员)时,更改期间的网站速度变慢。

PathAuto是否会占用大量内存,并且有缓解此问题的方法吗?


4
通常,在执行任何网站创建/开发时都禁用PathAuto。内存要求,尤其是导入大量初始内容时,通常会超出合理值。我发现开发网站,导入内容和然后在启动之前批量生成路径要容易得多。
Jake The Dweeb

1
什么版本的Drupal?
mpdonadio

好点@JakeTheDweeb
chrisjlee 2012年

Answers:


18

这在很大程度上取决于您所使用的Core版本。主要的内存问题是Drupal 6的令牌模块,当给定一个节点时,它将为该节点生成所有可能的令牌,而与实际上将被替换的令牌无关。这意味着,除了要生成大量的令牌外,还需要加载或呈现其他对象等的昂贵令牌导致了问题。

使用Drupal 7,改进的令牌API仅生成您实际使用的令牌,并大大提高了性能和内存使用率。在正常使用中,Pathauto实际上仅在保存项目时才重要,而不会影响“正常”页面视图。


使用Drupal7。“在正常使用中,Pathauto实际上仅在保存项目时才重要,而不会影响“正常”页面视图。” 这是很好的信息。因此,从根本上说,一旦创建路径别名,内存使用量就会减少吗?
David Csonka

1
是。Pathauto不应使任何内容在正常的页面视图上运行,因此也不应引起额外的内存使用。
戴夫·里德

9

我们在Drupal 7中偶然发现的一个问题是,当您有许多节点将获得相同的路径别名时。因为然后发生的是第一个获取$ alias,第二个尝试了$ alias,看到这个已经被保留并使用$ alias-1。第三个尝试$ alias,然后是$ alias-1,然后使用$ alias-2。等等。不过,这不是pathauto的问题,它也不是真正的错误,因为您应该清理糟糕的数据(我们有600k导入的印刷文章,具有数百个相同的标题。例如“ weather”;)),或者为别名选择更好的模式(例如,包括日期)。如果启用了pathauto,这也会严重减慢数据导入速度。

另一个问题是,如果您有很多字段可以完全破坏列出令牌浏览器的任何页面,尤其是pathauto配置站点(其中包含多个浏览器),则令牌浏览器会爆炸。

除了这些相关问题,我还没有看到Pathauto引起的任何直接性能问题。如果您认为可以,那么您真正应该做的就是使用Xhprof对您的网站进行配置,以了解实际使用cpu /内存的情况。


好提示,谢谢!我没有考虑潜在重复别名的后果。
David Csonka
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.