Preallocate append targets flagged by prealloc (refs #61)
collectBatchFlushData now sizes the file-chunk and chunk-file slices to the number of pending files, a safe lower bound since every file contributes at least one mapping of each kind. The chunker test sizes its reconstruction buffer to the input length, which is exactly what it ends up holding. Append semantics and results are unchanged.
This commit is contained in:
@@ -53,7 +53,7 @@ func TestChunkerLargeFileMultipleChunks(t *testing.T) {
|
||||
}
|
||||
|
||||
// Verify chunks reconstruct original data
|
||||
var reconstructed []byte
|
||||
reconstructed := make([]byte, 0, len(data))
|
||||
for _, chunk := range chunks {
|
||||
reconstructed = append(reconstructed, chunk.Data...)
|
||||
}
|
||||
|
||||
@@ -624,11 +624,11 @@ func (s *Scanner) collectBatchFlushData(
|
||||
|
||||
collectStart := time.Now()
|
||||
|
||||
var (
|
||||
allFileChunks []database.FileChunk
|
||||
allChunkFiles []database.ChunkFile
|
||||
)
|
||||
|
||||
// Every pending file contributes at least one file-chunk and one
|
||||
// chunk-file mapping, so the file count is a safe lower bound for the
|
||||
// initial capacity of both slices.
|
||||
allFileChunks := make([]database.FileChunk, 0, len(canFlush))
|
||||
allChunkFiles := make([]database.ChunkFile, 0, len(canFlush))
|
||||
allFileIDs := make([]types.FileID, 0, len(canFlush))
|
||||
allFiles := make([]*database.File, 0, len(canFlush))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user