首先,很抱歉我的英语不好,但我需要你的帮助。
我用java swing开发了一个模拟程序,其中我使用了大量的矩阵计算。我的程序刚刚结束,但我需要提高我的性能。因此,我使用了java visual vm profiler来识别性能问题。我认识到Jama矩阵的初始化需要很长时间。运行我的程序后,JAMA分配了超过3MB的对象。太多了,不是吗?我认为这就是为什么表现不好的原因。
对于矩阵,还有比jama更好的库吗?我正在使用3x3矩阵,我需要乘法和逆运算,或者还有其他我可以做的吗?
发布于 2013-08-24 22:40:22
通常,矩阵数学库不会针对小矩阵的速度进行优化。您可以通过使用几个来亲自查看,这可能会在内存分配和选项检查等开销函数中显示出很大一部分时间。
您可以做的是(我已经做了)编写特殊用途的例程来进行乘法和求逆,因为您知道矩阵是3x3。乘法是微不足道的,你可以展开整个过程。
3x3矩阵的求逆也可以用比咖啡更少的代码来完成:)
无论您做什么,都要尽量减少内存分配。
https://stackoverflow.com/questions/18398651
复制相似问题