验证:record项元的多少影响修改速度。

本文通过Erlang编程语言实现了一个实验,验证了官方文档中关于记录修改实际上是进行复制的说法。实验定义了两个不同大小的记录,并通过递归方式修改记录中的字段,最后测量并比较了修改操作的时间消耗。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

验证erlang官网提供的思想:record的修改是复制。

 

-module (test_record).
-record (record_5,{ aa1 = 0,
					aa2 = 0,
					aa3 = 0,
					aa4 = 0,
					aa5 = 0}).

-record(record_50,{	aa1 = 0,
					aa2 = 0,
					aa3 = 0,
					aa4 = 0,
					aa5 = 0,
					aa6 = 0,
					aa7 = 0,
					aa8 = 0,
					aa9 = 0,
					aa10 = 0,
					aa11 = 0,
					aa12 = 0,
					aa13 = 0,
					aa14 = 0,
					aa15 = 0,
					aa16 = 0,
					aa17 = 0,
					aa18 = 0,
					aa19 = 0,
					aa20 = 0,
					aa21 = 0,
					aa22 = 0,
					aa23 = 0,
					aa24 = 0,
					aa25 = 0,
					aa26 = 0,
					aa27 = 0,
					aa28 = 0,
					aa29 = 0,
					aa30 = 0,
					aa31 = 0,
					aa32 = 0,
					aa33 = 0,
					aa34 = 0,
					aa35 = 0,
					aa36 = 0,
					aa37 = 0,
					aa38 = 0,
					aa39 = 0,
					aa40 = 0,
					aa41 = 0,
					aa42 = 0,
					aa43 = 0,
					aa44 = 0,
					aa45 = 0,
					aa46 = 0,
					aa47 = 0,
					aa48 = 0,
					aa49 = 0,
					aa50 = 0	}).

-export ([test_5/1,test_5/2,test_50/1,test_50/2]).




test_5(Amount)->
		Record_5 = #record_5{},
		%% Fun = fun(Amount2,Record_5_2)-> test_5(Amount2 ,Record_5_2) end,
		%% {Time_ms,_Value} = timer:tc(Fun,[Amount,Record_5]),
		{Time_ms,_Value} = timer:tc(test_record,test_5,[Amount,Record_5]),
		Time_s = Time_ms div 1000,
		io:format("test_5 cost time:~w ms~n",[Time_s]).

test_5(0,_Record_5)->
		ok;
test_5(Amount,Record_5)->
		_New_Record_5 = Record_5#record_5{aa2 = 2},
		test_5(Amount - 1,Record_5).



test_50(Amount)->
		Record_50 = #record_50{},
		{Time_ms,_Value} = timer:tc(test_record,test_50,[Amount,Record_50]),
		Time_s = Time_ms div 1000,
		io:format("test_50 cost time:~w ms~n",[Time_s]).

test_50(0,_Record_50)->
		ok;
test_50(Amount,Record_50)->
		_New_Record_50 = Record_50#record_50{aa20 = 2},%% aa2 和 aa2 的速度同样。
		test_50(Amount - 1,Record_50).

 

 

 

转载于:https://www.cnblogs.com/ribavnu/p/3714075.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值