gpt4 book ai didi

ruby - 在 Ruby 中,是否有必要内存一个返回常量值/对象的方法?

转载 作者:数据小太阳 更新时间:2023-10-29 08:24:15 24 4
gpt4 key购买 nike

给定以下方法:

def some_hash
{
:one => 1,
:two => 2,
}
end

内存哈希是否有任何性能优势?

def some_hash
@some_hash ||= {
:one => 1,
:two => 2,
}
end

最佳答案

似乎内存变体快了大约 7.5 倍:

def hash1
{
:one => 1,
:two => 2,
}
end

def hash2
@some_hash ||= {
:one => 1,
:two => 2,
}
end


require 'benchmark'

Benchmark.bmbm do |b|
b.report do
1_000_000.times{ hash1 }
end
end

Benchmark.bmbm do |b|
b.report do
1_000_000.times{ hash2 }
end
end

Rehearsal ------------------------------------
1.470000 0.030000 1.500000 ( 1.499750)
--------------------------- total: 1.500000sec

user system total real
1.570000 0.030000 1.600000 ( 1.739230)
Rehearsal ------------------------------------
0.210000 0.000000 0.210000 ( 0.231601)
--------------------------- total: 0.210000sec

user system total real
0.210000 0.010000 0.220000 ( 0.234898)

关于ruby - 在 Ruby 中,是否有必要内存一个返回常量值/对象的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12220284/

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