gpt4 book ai didi

f# - 使用单例区分联合类型是否会对性能产生影响?

转载 作者:行者123 更新时间:2023-12-03 18:36:43 25 4
gpt4 key购买 nike

对每个原始值都有一个包装器很好,这样就没有办法滥用它。我怀疑这种便利是有代价的。有没有性能下降?如果性能是一个问题,我是否应该使用裸原始值?

最佳答案

是的,当使用单例联合类型来包装原始值时,性能会下降。联合案例被编译到类中,因此您将支付分配(以及随后收集)该类的代价,并且每次获取联合案例中保存的值时,您还将有一个额外的间接性。

根据您的应用程序的具体情况,以及您多久会产生这些额外的开销,如果它使您的代码更安全和更模块化,它可能仍然值得做。

我用 F# 编写了很多对性能敏感的代码,我个人的偏好是尽可能使用 F# 度量单位类型来“标记”原始类型(例如整数)。这可以防止它们被滥用(感谢 F# 编译器的类型检查器),但也避免了任何额外的运行时开销,因为在编译代码时会删除度量类型。如果你想要一些这样的例子,我已经在我的 fsharp-tools 中广泛使用了这种设计模式。项目。

关于f# - 使用单例区分联合类型是否会对性能产生影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18815210/

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