相关疑难解决方法(0)

C#,struct vs class,更快?

可能重复:
哪个最适合数据存储结构/类?

考虑一个示例,其中我有一个Employee对象,其中包含年龄,姓名,性别,职称,薪水等属性.我现在有一个列表,我想填充一堆Employees(每个Employee实例是唯一的).

就速度和内存占用而言,将员工创建为Struct还是Class更为可取?

关于上述场景中Struct和Class的任何其他警告都是受欢迎的

c# struct class

16
推荐指数
2
解决办法
5万
查看次数

在托管代码中,如何实现良好的引用局部性?

由于RAM似乎是新磁盘,并且因为该声明也意味着现在认为对内存的访问速度与磁盘访问的方式类似,我确实希望最大化内存中的引用位置以用于高性能应用程序.例如,在排序索引中,我希望相邻值接近(不像说,在哈希表中),我也希望索引指向的数据也接近.

在C中,我可以使用专门的内存管理器来创建数据结构,就像(非常复杂的)Judy数组的开发人员一样.通过直接控制指针,它们甚至可以在指针值本身中编码附加信息.在Python,Java或C#中工作时,我故意将这种类型的解决方案中的一个(或多个)抽象级别委托给JIT编译器并优化运行时,为我做低级别的巧妙技巧.

尽管如此,我猜想,即使在这种高水平的抽象中,也有一些东西可以在语义上被认为是"更接近",因此可能实际上更接近于低水平.例如,我想知道以下(我在括号中的猜测):

  • 我可以期待一个数组成为相邻的内存块(是)吗?
  • 同一个实例中的两个整数是否比同一个类的不同实例中的两个更接近(可能)?
  • 对象是否占据内存中的一个重要区域(否)?
  • 只有两个int字段的对象数组和一个有两个int[]字段的对象之间的区别是什么?(这个例子可能是Java特定的)

我开始在Java环境中对这些问题感到疑惑,但我的想法变得更加普遍,所以我建议不要将其视为Java问题.

c# python java optimization memory-management

11
推荐指数
1
解决办法
2057
查看次数

标签 统计

c# ×2

class ×1

java ×1

memory-management ×1

optimization ×1

python ×1

struct ×1