创建(和发布)数百万个小对象的"最佳实践"是什么?
我正在用Java编写国际象棋程序,搜索算法为每个可能的移动生成一个"移动"对象,名义搜索每秒可以轻松生成超过一百万个移动对象.JVM GC已经能够处理我的开发系统上的负载,但我有兴趣探索以下方法:
绝大多数对象都是非常短暂的,但生成的大约1%的移动是持久化并作为持久值返回,因此任何池化或缓存技术都必须能够排除特定对象的重用.
我不希望完整的示例代码,但我希望进一步阅读/研究的建议,或类似性质的开源示例.
在单个C#类中拥有大量变量,属性和/或方法是否会有任何明显的性能损失?
我有几个类(一个棋盘,移动生成器和一个PGN解析器),总共约1,200行代码.移动生成器和解析器都非常紧密地耦合到板类,并且很有可能简单地将所有三个类组合成一个大的"厨房接收器"类.
我理解并赞扬将每个课程都集中在一个任务上并干净地封装其内部设计的概念,但由于使用.NET是一个不可妥协的要求,我也愿意牺牲"纯粹的设计"来换取性能
除了明显的可读性/可维护性问题之外,与较大数量的较小的简单类相比,拥有较少数量的大型复杂类的缺点是什么?
干杯! 谦虚的程序员,,, ^ .. ^ ,,,