提交 768d5001 编写于 作者: J Jeremy Fitzhardinge

save-analysis: use buffered writes

Otherwise it ends up writing the file byte at a time, which can be very slow for large outputs.
上级 d3e2cec2
......@@ -29,6 +29,7 @@
use std::default::Default;
use std::env;
use std::fs::File;
use std::io::BufWriter;
use std::path::{Path, PathBuf};
use syntax::ast::{self, Attribute, DUMMY_NODE_ID, NodeId, PatKind};
......@@ -1025,7 +1026,7 @@ pub fn new(odir: Option<&'a Path>, cratename: &str) -> DumpHandler<'a> {
}
}
fn output_file(&self, ctx: &SaveContext<'_, '_>) -> (File, PathBuf) {
fn output_file(&self, ctx: &SaveContext<'_, '_>) -> (BufWriter<File>, PathBuf) {
let sess = &ctx.tcx.sess;
let file_name = match ctx.config.output_file {
Some(ref s) => PathBuf::from(s),
......@@ -1059,9 +1060,9 @@ fn output_file(&self, ctx: &SaveContext<'_, '_>) -> (File, PathBuf) {
info!("Writing output to {}", file_name.display());
let output_file = File::create(&file_name).unwrap_or_else(
let output_file = BufWriter::new(File::create(&file_name).unwrap_or_else(
|e| sess.fatal(&format!("Could not open {}: {}", file_name.display(), e)),
);
));
(output_file, file_name)
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册