我一直在寻找Moose(现代面向对象的Perl)的替代产品 因为Moose的速度很慢,所以我已经看到了几个与此问题相关的帖子,所以我不想这么做。 来自同一创作者的示例:https://www.youtube.com/watch?v=ugEry1UWg84&feature=youtu.be&t=260
所以我从驼鹿的同一位创造者那里找到了这种选择:
https://metacpan.org/pod/MOP#DESCRIPTION MOP-Perl 5的元对象协议
该模块以最小的开销实现了Perl 5的元对象协议,并且最终没有非核心依赖。
使用UNIVERSAL :: Object:
https://metacpan.org/pod/UNIVERSAL::Object
这是Moose的一个不错的选择吗?有人可以测试此软件吗?
相关文章: https://www.perlmonks.org/?node_id=1220917
谢谢。
注意:我忘了提起我对Moo,Mouse等的了解,也许存在更好的东西吗?
答案 0 :(得分:7)
答案 1 :(得分:1)
您在哪种情况下使用Moose却发现它运行缓慢?当然会涉及开销,但是大多数开销是在启动时(编译)发生的;然后,在运行时,大多数功能都很便宜(只要您使类不可变即可),如the documentation中所述。随着时间的流逝,Moose已成为面向对象编程的事实上的标准,并且它具有非常非常广泛的生态系统(在metacpan上对MooseX进行搜索会返回820个结果)。不要早早放弃。
如果您确实需要更快的启动时间(例如在香草CGI环境中),则Moose最相关的替代方法是Moo,即最小对象定向。它确实很轻巧,没有XS依赖关系,同时实现了Moose的重要子集(此外,它的语法与Moose完全兼容,因此如果您需要在Moo中缺少的某些功能,则可以在以后随时升级到Moose) 。它还拥有丰富的生态系统。