Opened 12 years ago
Last modified 12 years ago
#2099 closed defect
mg-desktop: Reduce excessive disk IO — at Initial Version
Reported by: | jng | Owned by: | jng |
---|---|---|---|
Priority: | low | Milestone: | 2.4 |
Component: | Desktop API | Version: | |
Severity: | minor | Keywords: | |
Cc: | External ID: |
Description
If you look at any process using mg-desktop in the Task Manager, chances are the "I/O Read Bytes" column will be through the roof.
The explanation is simple, the mg-desktop implementation of MgResourceService is a simple wrapper around the file system, so every GetResourceContent() call (and Maestro does a lot of this) is a call to read a file from disk. Such calls add up real quick.
The solution would be to have an in-memory cache of resource content, such that subsequent calls to GetResourceContent() on the same resource id returns a MgByteReader from a cached copy of the resource content. Subsequently, calls to SetResource() will flush existing entries out and update the cached entry.