perf: performance improvements 1
This commit is contained in:
+10
-6
@@ -141,6 +141,13 @@ export class AttachmentPersistenceService {
|
||||
this.revokeAttachmentObjectUrl(attachment);
|
||||
attachment.objectUrl = undefined;
|
||||
|
||||
// Once the bytes live on disk, the cached File duplicate is redundant:
|
||||
// peer requests are served from the disk path and re-display rehydrates
|
||||
// from disk, so keeping it would double the attachment's memory cost.
|
||||
if (attachment.savedPath?.trim()) {
|
||||
this.runtimeStore.deleteOriginalFile(`${attachment.messageId}:${attachment.id}`);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -388,15 +395,12 @@ export class AttachmentPersistenceService {
|
||||
return true;
|
||||
}
|
||||
|
||||
// The blob always comes from a disk path here, so peers are served from
|
||||
// disk and no original-file copy is cached; caching one would keep a second
|
||||
// full copy of the bytes alive for the whole session.
|
||||
private applyAttachmentBlob(attachment: Attachment, blob: Blob): void {
|
||||
attachment.objectUrl = URL.createObjectURL(blob);
|
||||
attachment.available = true;
|
||||
|
||||
this.runtimeStore.setOriginalFile(
|
||||
`${attachment.messageId}:${attachment.id}`,
|
||||
new File([blob], attachment.filename, { type: attachment.mime })
|
||||
);
|
||||
|
||||
this.runtimeStore.touch();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user