我正在研究的优化项目之一现在大量使用
EPANet.我们在EPANet中重复调用两种模拟方法,以了解水如何流经供水网络.
HydraulicSim是我们使用的课程之一.查看重载的模拟方法:
public void simulate(File hyd) throws ENException {
...
}
public void simulate(OutputStream out) throws ENException, IOException {
...
}
public void simulate(DataOutput out) throws ENException, IOException {
...
}
我们使用的另一个类是QualitySim.这里,我们还使用了重载的模拟方法:
public void simulate(File hydFile, File qualFile) throws IOException, ENException {
...
}
void simulate(File hydFile, OutputStream out) throws IOException, ENException {
...
}
这是我们目前正在做的事情:
>创建两个File对象,hydFile和qualFile.
>在hydFile上调用HydraulicSim.simulate.
>在hydFile和qualFile上调用QualitySim.simulate.
>删除文件.
问题是我们必须做很多次.对于一个大问题,我们可以做到数十万甚至数百万次.您可以想象减速反复创建/写入/删除这些文件的原因.
所以我的问题是:我是否可以创建这些文件,使它们只驻留在内存中,永远不会触及磁盘?每个文件都很小(我说几百字节),所以将它们扔进内存不会有问题;我只需要弄清楚如何.除了MappedByteBuffer,我在周围搜索并没有找到太多,但我不确定如何,或者甚至可能,从该类创建一个文件.
欢迎任何建议!