主题:【求助】:请教信息技术方面的大牛有关多线程的问题 -- newtime
共:💬51 🌺45
给了-X都不行,当时是要验证自己写的算法的有效性。后来的解决办法是:不用jvm提供的基本对象,因为java.lang.Object在一般的实现里面,每个对象有8个byte的overhead,只能自己用大数组去存每个实例的一个属性,这样每个数组有这个overhead,而不是每个对象都浪费 8 bytes。
除了autoeagle的建议以外,我建议你去看看你的程序是否有某种访存模式。我隐约记得解方程组的时候,访存通常是逐行/逐列,最多是按对角线来。这样的话,你可以安排数据在内存里面的排列顺序,CPU会按cache line来读取数据,如果你的数据安排合适,每个cache line的第一个数据读过以后,后面的数据也在cache里面了。
或者你自己去添一两句汇编,prefetch一下后面一个循环要用的数据。
- 相关回复 上下关系8
压缩 3 层
🙂你还没理解 大龙猫 字465 2009-08-16 21:40:17
🙂多核CPU对科学计算支持的很好 3 autoeagle 字577 2009-08-16 22:34:59
🙂请教:老兄看这个问题如何优化 大龙猫 字280 2009-08-16 22:52:31
🙂我还遇到过jvm把内存吃光的事情
🙂有时间的话,推荐看看《计算机程序设计艺术》这套巨著 3 autoeagle 字182 2009-08-16 23:16:16
🙂本质是一样的 4 美人他爹 字768 2009-08-19 06:54:39
🙂真正的专家出手了,我这只是皮毛而已,抛砖引玉 3 autoeagle 字279 2009-08-19 07:29:38
🙂客气了 2 美人他爹 字543 2009-08-19 10:31:21