Python 将文件预加载到内存中,并由其他实用程序作为参数调用

Python 将文件预加载到内存中,并由其他实用程序作为参数调用,python,performance,mmap,Python,Performance,Mmap,当我在Python中启动一个.jar时,我将给出文件名作为execute.jar文件的参数。例如:java-jar xx.jar-file xx.file 我刚刚注意到,当Java进程尝试以I/o读取的方式读取xx.file时,任务管理器的CPU使用率将降低30%。 所以我想,如果我们可以将文件预读到内存中,mmap可以做到吗 有什么改进的建议吗?如果我有超过50个java.exe进程,CPU使用率和I/o问题对我来说应该是个大问题。这看起来根本不像python的问题。但是 如果您有50个进程读

当我在Python中启动一个.jar时,我将给出文件名作为execute.jar文件的参数。例如:
java-jar xx.jar-file xx.file

我刚刚注意到,当Java进程尝试以I/o读取的方式读取xx.file时,任务管理器的CPU使用率将降低30%。
所以我想,如果我们可以将文件预读到内存中,mmap可以做到吗


有什么改进的建议吗?如果我有超过50个java.exe进程,CPU使用率和I/o问题对我来说应该是个大问题。

这看起来根本不像python的问题。但是

如果您有50个进程读取同一个文件,那么您的操作系统很可能已经为您缓存了该文件(当然,如果有足够的空间缓存它的话)

这将消除I/O(磁盘)成本方面的问题。 但您说,在任务管理器中,读取导致30%的CPU使用率。你知道这个CPU时间的真正用途吗?是用来读文件的吗?JIT编译java代码?刚刚启动JVM:s


在试图解决问题之前,你应该确保你确切地知道问题是什么

你是什么意思“…它将花费30%的cpu使用率…”?要多久?为什么你认为这是一个问题?你对“任务管理器”的评论暗示了windows,但你用mmap标记了这个问题。我认为这不是前进的方向不,我没有调用相同的文件,我调用了不同的文件,但是那个文件有点小,大约1.44mb,软盘映像。还有一件事,我没有java代码,我只有二进制文件。在我的python代码中,它将调用popen来调用,就像我们在命令行下执行它一样(java-jar xx.jar-file xx.file),所以我想确定是否可以在内存中提供xx.file,并允许jar应用程序将其作为参数读取。所以,如果我理解正确:您启动JVM来处理软盘大小的文件?您确实应该衡量性能问题在哪里。例如,启动JVM可能比处理该文件花费更多的能量。