当尝试测量执行时间时,我知道将值写入文件比将值打印到控制台要快得多(这确实会减慢程序速度)。但我还没有找到任何比较直接将值写入文件的速度与在程序执行期间将值保存在可增长的数据结构(如 LinkedList)中,然后在程序退出时将所有值写入文件的速度之间的比较。似乎将值保存在像 LinkedList 这样的东西中“可能”会更快,但我不确定。
我正在尝试对在自己的线程中运行的音频混合器循环进行计时,因此它将是自动计时的。因此,我想使用一种技术来测量和存储时间,对整体运行时间的影响尽可能小。
此外,我还研究过 VisualVM 等 Java 分析器,但尚未找到查看循环中各个传递的执行时间的方法。
谢谢!
最佳答案
写入文件会中断你的程序——不是每次写入都会中断,但经常足以搞乱你的计算。写入磁盘是由内核完成的,整个程序将等待 IO。将数据保存到内存中效果更好。但是,请注意 ArrayList,随着数组的增长,它可能会做很多额外的工作。您使用链接列表是正确的。
如果数据量很大,您可以使用内存数据库。
关于java - 程序执行时间|将值保存到文件或数据结构中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26044177/