我尝试创建一个排序文件生成器,它将硬编码的消息吐出到文件中,并根据用户输入略微改变某些字符串。由于我利用多态性,我有多个文件和接口。
我发现自己传递的文件参数多于一次,并开始重新思考我构建程序的方式。这让我想问一下,将文件作为参数传递给多个方法是否会产生巨大的性能影响?
感谢。
答案 0 :(得分:3)
传递给方法的参数数量没有可衡量的性能影响。
但是,反复打开和关闭java.io.File{Input|Output}Stream
会产生费用。并且您需要样板试试/最终代码以确保文件在使用后正确关闭。
更好的解决方案是将OutputStream
传递给您的方法,并在顶级方法中打开一次文件。这也可以让您的代码最容易测试:您可以传递ByteArrayOutputStream
而不是FileOutputStream
。
哦,并将FileOutputStream
包裹在BufferedOutputStream
答案 1 :(得分:0)
我不太确定你到底传递了什么,一些代码示例会很有用。
我的第一个想法是,如果您遇到性能问题,那么您应该对应用程序进行概要分析。编写文件可能是瓶颈,而不是参数传递(记住 - 你将传递对象引用,而不是对象本身)。
但在开始任何(可能代价高昂的)重构之前,首先要衡量您的应用程序性能。