Change chunk size

improvement-chunk_array-logs
chortas 3 years ago
parent 1ed1cb4f8e
commit 18e5fa7043

@ -3,6 +3,11 @@
#define MAX_CHUNK_SIZE 2048*2048 #define MAX_CHUNK_SIZE 2048*2048
int min(int value1, int value2) {
if (value1 < value2) return value1;
return value2;
}
void chunk_array_free(chunk_array_t* chunk_array) { void chunk_array_free(chunk_array_t* chunk_array) {
fclose(chunk_array->fp); fclose(chunk_array->fp);
free(chunk_array->data); free(chunk_array->data);
@ -43,7 +48,9 @@ chunk_array_t* chunk_array_create(char* filename, size_t total_size) {
} }
} }
chunk_array->data = malloc(MAX_CHUNK_SIZE * sizeof(double)); chunk_array->chunk_size = min(MAX_CHUNK_SIZE, total_size);
chunk_array->data = malloc(chunk_array->chunk_size * sizeof(double));
if (MAX_CHUNK_SIZE > 0 && chunk_array->data == NULL) { if (MAX_CHUNK_SIZE > 0 && chunk_array->data == NULL) {
free(chunk_array); free(chunk_array);
@ -54,7 +61,6 @@ chunk_array_t* chunk_array_create(char* filename, size_t total_size) {
chunk_array->filename = filename; chunk_array->filename = filename;
chunk_array->init_pos = 0; chunk_array->init_pos = 0;
chunk_array->chunk_size = MAX_CHUNK_SIZE;
chunk_array->total_size = total_size; chunk_array->total_size = total_size;
return chunk_array; return chunk_array;
} }

Loading…
Cancel
Save