我编写了几个使用file.write()和file.append()或简单地"file << string"编写平面文件的Groovy程序.我最近在研究这种方法时遇到了一些信息,其中人们说这可能效率低,因为附加到文件意味着追加打开文件,找到结束,写入文件,并在每次调用追加时关闭它.在某些程序中,当我从数据库中选择数据后写入文件时,我可能会多次调用它.
我进一步读到使用文件编写器更有效,例如声明
fileWriter = new file.newWriter()
Run Code Online (Sandbox Code Playgroud)
然后发行
fileWriter.write()
Run Code Online (Sandbox Code Playgroud)
代替.我的问题是,其他人在做什么,有人知道在什么时候考虑改变使用文件编写器是值得的?到目前为止,我还没有注意到性能上的提升; 但是,我还有几个要编写的程序,它们会生成一些大的平面文件,如果使用文件编写器是有意义的,我宁愿改变以前的程序,而不是以后使用它.
一个简单的基准来说明问题:
@Grab(group='org.gperfutils', module='gbench', version='0.4.2-groovy-2.1')
def b = benchmark {
'append' {
def f = File.createTempFile('file', 'append')
(1..1000).each {
f.append(it.toString())
}
}
'writer' {
def f = File.createTempFile('file', 'writer')
def w = f.newWriter()
(1..1000).each {
w.write(it.toString())
}
}
}
b.prettyPrint()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3420 次 |
| 最近记录: |