gpt4 book ai didi

c# - 在 C# 中通过引用将结构值传递给方法是可接受的优化吗?

转载 作者:行者123 更新时间:2023-11-30 13:24:41 25 4
gpt4 key购买 nike

假设我有一个结构:

struct MyStruct
{
public int X
public int Y
}

还有一些类中的方法在其他地方被多次迭代:

public bool MyMethod( MyStruct myStruct )
{
return ...
}

将 MyMethod 签名更改为以下可接受的优化吗?

public bool MyMethod( ref MyStruct myStruct )

如果是这样,它的真正优势有多大?如果不是,以这种方式使用 ref 时,结构需要多少字段才能获得足够大的优势?

最佳答案

您将进行更改以在 32 位系统上推送 8 个字节而不是 4 个字节的数据。在 64 位系统上推送的数据量没有变化。您还向编译器/JITter 添加了一个要求,即该结构必须存在于内存中,因为您将获取它的地址,这可能会否定其他优化。

我怀疑这会显示您的程序有任何性能提升。首先分析并查看 MyMethod 是否甚至是您程序中的瓶颈。

然后,假设 MyMethod 中没有其他优化机会,将更改更改为通过 ref,然后再次分析以查看是否有任何改进。

关于c# - 在 C# 中通过引用将结构值传递给方法是可接受的优化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2906398/

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