有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java堆分配和合适的硬件

对于C#。net 3.5应用程序不可避免地在堆上创建大量数据,就硬件而言,就内存而言,我需要什么?它会是最大的插座总线宽度吗?还是记忆棒的“带宽”?或者它们运行的实际频率

我们已经得出结论,应用程序的瓶颈是无法避免的,当扩展时,将工作分散到多个线程上,由于许多线程访问RAM,我们似乎会遇到“冲突”

实际问题是指锁定项目,并有许多线程试图访问这些项目。无法进一步优化螺纹锁定。由于这与线程有关,我不确定是否还应该调查其他CPU选择,并仔细查看QPI统计数据?我们目前使用的是Westmile架构,但时钟速度较慢,为2GHz

编辑:有人建议DMA可以帮助我们

我将把它标记为C和Java,因为我相信答案不会是特定于C的

提前感谢,


共 (1) 个答案

  1. # 1 楼答案

    我会在更快的机器上测试应用程序。从它的声音来看,你的内存带宽是瓶颈,所以我会尝试一款4.5GHz超时钟i7,32GB的1600MHz内存或类似的。你可以花1000美元左右买一个。你可能会发现,使用更快的系统,你的瓶颈就会移动

    顺便说一句:我怀疑C#中的对象创建是可以避免的,尽管它可能无法实现,因为听起来解决这个问题的时间有限。在Java中,我已经编写了许多高性能服务器,这些服务器每天的GCes不到一次,但您必须客观地编写所有核心代码。类似地,您可以编写一个不会锁定关键代码部分的服务,但稍后仅添加它并不是一件繁琐的事情