gpt4 book ai didi

perl - Class::MethodMaker 究竟做了什么?

转载 作者:行者123 更新时间:2023-12-04 07:12:34 27 4
gpt4 key购买 nike

我想知道调用通过 Class::MethodMaker 创建的 getter/setter 时发生的调用顺序到底是什么?

MethodMaker 定义的 getter/setter 比本地的(在模块中覆盖)要贵多少?

最佳答案

对于您关于 Class::MethodMaker 性能的问题,我没有简单的答案。正如前面提到的答案,您可以使用调试器来找出幕后发生的事情。但是,我知道 Class::MethodMaker 在安装时会生成大量代码。这将向我表明三件不同的事情:

  • 关于运行时,它可能是整个方法生成器中速度更快的一面。为什么要在安装时生成大量代码?
  • 它会在您的磁盘上安装 O(兆字节)的代码!
  • 它在编译时可能会很慢,这取决于为简单的用例加载了生成代码的哪些部分。

  • 你真的需要花几分钟来思考你真正需要什么。如果您想要自动生成简单的访问器方法,但要手动编写更复杂的内容,可以查看 Class::Accessor::Fast。或者,如果您想要最快的访问器方法,请研究 Class::XSAccessor,它的超简单方法作为 C/XS 代码运行,并且速度大约是最快的 Perl 访问器的两倍。 (注意:我写了后一个模块,所以对此持保留态度。)

    进一步的评论:如果您打算使用 PAR/PAR::Packer 工具包来打包您的应用程序,请注意 Class::MethodMaker 的大量代码会导致可执行文件大得多并且初始启动速度较慢时间。此外,C::MethodMaker 和 PAR 之间存在已知的不兼容性。但这可能被认为是一个 PAR 错误。

    关于perl - Class::MethodMaker 究竟做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62102/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com