.net - 结构与类

标签 .net performance

这适用于 .NET。
我正在寻找编写空间映射应用程序。内存中将同时有几个多边形(大约 30 - 50 个多边形)。每个 polgon 都有一组 LatLong 点。每个多边形的集合范围从 10 到 200。但是,将使用这些点进行很多计算,这就是为什么(为了性能)我想让 LatLong 成为一个结构体。但是,我对内存中的大量 LatLong 感到厌烦。对此的任何见解将不胜感激。
回顾一下:我想知道我是否应该将 LatLong 设为结构,因为我想要计算的性能,或者因为内存中的 latLong 数量为一个类。

最佳答案

这个问题的答案将取决于您的资源优先级、类/结构中的内容以及您如何使用它。我建议你弄清楚你的内存/性能资源是什么样的,然后对两种实现进行大量测试,看看它们如何适应这些资源参数。如果可能,请尝试测试您希望执行的实际操作。

MSDN also offers some good guidance on when and when not to use structs.从文章:

Do not define a structure unless the type has all of the following characteristics:

  • It logically represents a single value, similar to primitive types (integer, double, and so on).
  • It has an instance size smaller than 16 bytes.
  • It is immutable.
  • It will not have to be boxed frequently.

关于.net - 结构与类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5487511/

相关文章:

c# - 为什么在原始类型实例上调用 Object 类的某些函数需要装箱?

c# - 有没有更快的方法从数据库查询填充结果集?

android - 与 ItemizedOverlay 结合使用的 map 叠加性能非常差

c# - 如何在预期超时时处理负载下的 WCF 调用生命周期?

performance - 查找是否有元素重复自身 n/k 次

arrays - Swift 巨大的数组字典,非常慢

C#:在运行时根据控件大小自动调整字体的函数?

c# - 循环地将字符串分割成锯齿状数组

c# - 枚举 Dictionary.Values 与字典本身

c# - 我可以检测 Windows PC 上的视频显示是否在 c# 中启用了 HDCP