pre-allocate strings when formatting logs
This commit is contained in:
@@ -117,7 +117,7 @@ impl LogHandler {
|
|||||||
return "No log sources registered yet".to_string();
|
return "No log sources registered yet".to_string();
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut text = String::new();
|
let mut text = String::with_capacity(4096);
|
||||||
let now = Utc::now().timestamp();
|
let now = Utc::now().timestamp();
|
||||||
|
|
||||||
for (origin, buffer) in buffers.iter() {
|
for (origin, buffer) in buffers.iter() {
|
||||||
@@ -130,6 +130,8 @@ impl LogHandler {
|
|||||||
writeln!(&mut text, "=== [{origin}] ===").unwrap();
|
writeln!(&mut text, "=== [{origin}] ===").unwrap();
|
||||||
buffer.with_iter(|iter| {
|
buffer.with_iter(|iter| {
|
||||||
writeln!(&mut text, "{} log messages (newest first):", iter.len()).unwrap();
|
writeln!(&mut text, "{} log messages (newest first):", iter.len()).unwrap();
|
||||||
|
// Guess at how much to reserve
|
||||||
|
text.reserve(iter.len() * 128);
|
||||||
for log_msg in iter {
|
for log_msg in iter {
|
||||||
self.config.log_format.write_log_msg(&mut text, log_msg, now);
|
self.config.log_format.write_log_msg(&mut text, log_msg, now);
|
||||||
}
|
}
|
||||||
@@ -172,7 +174,9 @@ impl LogHandler {
|
|||||||
buffer.push_back(log_msg);
|
buffer.push_back(log_msg);
|
||||||
None
|
None
|
||||||
} else {
|
} else {
|
||||||
let mut text = String::default();
|
// Guess at capacity, it will be faster to use too much memory than too little
|
||||||
|
// signal-cli JVM is a hog anyways.
|
||||||
|
let mut text = String::with_capacity(4096);
|
||||||
let now = Utc::now().timestamp();
|
let now = Utc::now().timestamp();
|
||||||
|
|
||||||
buffer.push_back_and_drain(log_msg, |log_msg| {
|
buffer.push_back_and_drain(log_msg, |log_msg| {
|
||||||
|
|||||||
Reference in New Issue
Block a user