java - Java中大型二维矩阵的矩阵乘法

标签 java audio matrix

我目前正在做声音处理项目,这需要将包含声音数据的矩阵相乘,即幅度,我必须处理矩阵,主要执行乘法运算,但是矩阵中的元素数量太高了……从600kb .wav文件中它接近120000个元素。

所以当我执行乘法运算时,它给了我一个异常(exception)...

线程“主”中的异常java.lang.OutOfMemoryError:Java堆空间

请给我建议解决方案...

最佳答案

听起来您做错了什么。使用比原始数据文件更多的内存是很常见的,但是很少需要超过10倍(仅想到压缩的想象)

我建议您使用VisualVM来查看为什么要使用这么多的内存。您可以通过查看触发错误的方法来发现问题(即查看堆栈跟踪)

假设您要使用120,000 float作为幅度,即480 KB,可以在大多数手机上使用。顺便说一句:您正在通过电话这样做吗?

关于java - Java中大型二维矩阵的矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9536490/

相关文章:

javascript - 在 Web Audio API 中导出音频强度

c# - 如何在Unity 5中使用C#按比例更改3D对象的比例和音频源的半径?

Python-性能-将大型 numpy 数组作为字符串打印到选项卡文件

python - 处理大矩阵的硬件要求 - python

java - @InitBinder 的 value 元素的用途是什么?

java - 从 Servlet 连接到 MySQL 不工作

java - ScheduledExecutorService 在正常 OS/JVM 上的准确性

csv - 从CSV文件播放的心理声音混合在一起(时间以帧为单位)

java - 原始 Servlet 与 Spring MVC

c - 下面的代码有什么问题吗?出现错误 : Add is not a func or pointer