很长一段时间以来,我一直在研究一个生成分形轨道的 Java 程序。就像照片一样,图像越大,按比例缩小时效果就越好。该程序使用 2D 对象 (Point) 数组,在计算点的值时写入该数组。也就是说Point存储在它的对应值中,即:
Point p = new Point(25,30);
histogram[25][30] = p;
当然,为了简单起见,对此进行了编辑。我可以将点值写入 CSV,然后将它们应用于栅格,但使用类似方法会产生不良结果。我尝试了很长一段时间,因为我喜欢能够通过没有这个数组释放的空间制作更大的图像。它只是行不通。为清楚起见,我想补充一点,Point 对象还存储颜色数据。
下一个问题是 WriteableRaster,它将具有与数组相同的维度。两者结合起来占用了大量的内存。我已经接受了这一点,在尝试多次改变它的方式后,每次都得到较低质量的结果。
在尝试优化内存和时间之后,我得出的结论是我真的受到 RAM 的限制。这就是我想要改变的。我知道 -Xmx 开关(设置为 10GB)。有没有办法使用 Windows 的虚拟内存来存储光栅和/或数组?我很清楚这将导致对性能的重大影响,但是代替降低质量,似乎确实没有太多选择。