性能:复制`add_action`

时间:2016-11-10 作者:l2aelba

如果我想知道PHP performance on Wordpress,

如果我有很多副本add_action.

add_action( \'init\', \'func_a\' );
add_action( \'init\', \'func_b\' );
add_action( \'init\', \'func_c\' );
//... so on
vs公司

add_action( \'init\', \'func_init\' );
function func_init() {
   function_a();
   function_b();
   function_c();
   //... so on
}
第一个问题应该是performance 如果我有许多相同的动作

有没有最好的方法(可读性好)呢?

1 个回复
最合适的回答,由SO网友:CodeMascot 整理而成

简而言之,第一项比第二项消耗更多内存。原因之一是WordPress挂钩使用call_user_func_array() 动态调用所有这些函数。和call_user_func_array() 实际上,将数组作为其参数之一,并搜索具有此名称的函数。所以在运行时,它会导致内存和时间。您可以使用例如检查菜单和时差。memory_get_usage()timer_stop(). 有很多好的插件可以帮助实现这一点。

但已经有许多其他核心WordPress功能和其他插件将自身及其功能与该挂钩。因此,您的三个函数将只是该数组中的三个新元素,我认为这不会是性能问题。如果您想减少这三个函数所消耗的时间和内存,请记住,基于代码可维护性,它太小了,不能忽略。你的第一种方式既可读又容易理解。因此,我认为您可以忽略性能问题,除非它真的发展成为不应忽视的问题(这是不会发生的:)。

相关推荐

EDIT-Comments.php COMMENT_ROW_ACTIONS AJAX问题

在编辑注释上。php页面,我正在连接到comment\\u row\\u actions过滤器,以便在末尾添加另一个链接。我正在复制“Approve”链接,添加另一个查询键和值,并修改锚文本。我想根据新查询键的值添加一些注释元。批准的链接:/wp-admin/comment.php?c=9999&action=approvecomment&_wpnonce=8526c66已批准的元链接/wp-admin/comment.php?c=9999&action=approvecommen