ue4 unreal 关于 纯函数 pure function 执行问题 需要注意的地方 异常性能消耗 反复调用

问题:纯函数一旦没有使用好,就会造成非常大量的重复调用,不如不用

只想看解决方案直接往下找,字很大

为什么会重复调用

下面看两个例子吧

例子一:

随便弄个拼接字符串的纯函数,在纯函数内部放一个打印

看一下打印结果,纯函数内部打印是紫色,外面打印是黑色

感觉上应该是只走一次纯函数,但实际是走了两次

这个性能消耗你觉得还好,那没问题,咱们看第二个例子

例子二:

随便弄个纯函数,在函数内部造出来一个数组,返回出来

然后用这个数组进行循环

 看一下打印结果,纯函数内部打印是紫色,外面打印是黑色

 好吧,总共纯函数用了21次

你先别管这个为啥运行这么多次,先想

你是不是在项目中有纯函数,在循环内,或者作为循环输入在调用?

-----------------------------------解决方案-----------------------------------

当我意识到这个问题之后我非常仔细的想了下,我觉得还挺恐怖的。。。

那我们来聊聊解决方案

1.不要吝啬创建变量(Variables),尤其是本地变量(Local Variables),如果调用非常频繁,而且恰巧你需要纯函数这个形式,那么就把结果存下来,看我存下来

2.如果不是非常需要纯函数,你可以不用纯函数,或者准备两个一模一样的函数,一个纯函数,一个正常的,看我创建一个一样的(函数内打印换成紫色了)

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懵懵爸爸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值