good first issueperformance
Repository metrics
- Stars
- (19,103 stars)
- PR merge metrics
- (PR metrics pending)
説明
The idea is to make OwnedRecord register an enum that has a buffer to store all values. For example right now if you replace OwnedValue::Integer with OwnedValue::Float it will deallocate OwnedValue::Integer which is unnecessary.
This can help with stuff with affinity for example, let's say you update a OnwedValue::Text to a OwnedValue::intenger, then you would have to allocate a new OwnedValue and dispose of the buffer in Text.
So in pseudo code:
enum OwnedValueType {
Integer,
Float,
Text,
Blob,
Null
}
struct OwnedValue {
buffer: Vec<u8>,
type: OwnedValueType,
}
impl OwnedValue {
pub fn set_text(&[u8]) {
// 1. increase self.buffer if necessary
// 2. clear buffer
// 3. set buffer with data
}
}