Avoid unnecessary DB writes (#29417)
Part of https://github.com/zed-industries/zed/issues/16472 * Adds debug logging to everywhere near INSERT/UPDATEs in the DB So something like `env RUST_LOG=debug,wasmtime_cranelift=off,cranelift_codegen=off,vte=off cargo run` could be used to view these (current zlog seems to process the exclusions odd, so not sure this is the optimal RUST_LOG line) can be used to debug any further writes. * Removes excessive window stack serialization Previously, it serialized unconditionally every 100ms. Now, only if the stack had changed, which is now check every 500ms. * Removes excessive terminal serialization Previously, it serialized its `cwd` on every `ItemEvent::UpdateTab` which was caused by e.g. any character output. Now, only if the `cwd` has changed at the next event processing time. Release Notes: - Fixed more excessive DB writes
This commit is contained in:
parent
37fa437990
commit
f106dfca42
16 changed files with 224 additions and 168 deletions
|
@ -1644,6 +1644,7 @@ impl VimDb {
|
|||
path: Arc<Path>,
|
||||
marks: HashMap<String, Vec<Point>>,
|
||||
) -> Result<()> {
|
||||
log::debug!("Setting path {path:?} for {} marks", marks.len());
|
||||
let result = self
|
||||
.write(move |conn| {
|
||||
let mut query = conn.exec_bound(sql!(
|
||||
|
@ -1694,6 +1695,7 @@ impl VimDb {
|
|||
mark_name: String,
|
||||
path: Arc<Path>,
|
||||
) -> Result<()> {
|
||||
log::debug!("Setting global mark path {path:?} for {mark_name}");
|
||||
self.write(move |conn| {
|
||||
conn.exec_bound(sql!(
|
||||
INSERT OR REPLACE INTO vim_global_marks_paths
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue