【发布时间】:2022-01-09 09:41:06
【问题描述】:
如何最有效地在 Perl 全局数组中预分配一些内存?
首先数组最大为 40 - 41 KB,然后可能会超出它
一切都是为了高效的运行时间并避免许多重新分配费用
提前致谢
【问题讨论】:
-
转帖到PerlMonks。
-
“避免许多重新分配费用”——这在脚本语言中通常不是问题,因为效率低得多。但是,您可以通过设置数组
$#name(最后一个元素的索引)来预分配数组@name。所以如果你说$#name = 99;那么@name被分配了一百个元素。然而,那些将要成为的元素,即标量,它们本身当然不能在时间之前分配,因此可能甚至无法检测到增益。尝试并衡量,这样您就可以放弃这个想法并担心重要的项目:) -
请演示一个小的独立代码示例,它将向我们展示您的应用程序的性能如何因不预分配而显着降低。例如,分析结果也会很有用。这将有助于为更好的答案建立上下文,并提供更细致入微的解决方案。
-
(在我上面的评论中:“那些元素,标量,”——实际的元素当然是指向标量的指针)