move compression overhead calcs out of main()

This commit is contained in:
discomfitor 2011-08-11 00:57:43 -04:00 committed by Con Kolivas
parent 1c64dcfb31
commit e85e4df0ef
3 changed files with 16 additions and 10 deletions

11
main.c
View file

@ -540,16 +540,7 @@ int main(int argc, char *argv[])
control->flags &= ~FLAG_UNLIMITED;
}
/* Work out the compression overhead per compression thread for the
* compression back-ends that need a lot of ram */
if (LZMA_COMPRESS) {
int level = control->compression_level * 7 / 9 ? : 1;
i64 dictsize = (level <= 5 ? (1 << (level * 2 + 14)) :
(level == 6 ? (1 << 25) : (1 << 26)));
control->overhead = (dictsize * 23 / 2) + (4 * 1024 * 1024);
} else if (ZPAQ_COMPRESS)
control->overhead = 112 * 1024 * 1024;
setup_overhead(control);
/* Set the main nice value to half that of the backend threads since
* the rzip stage is usually the rate limiting step */

14
util.c
View file

@ -133,6 +133,20 @@ void failure(const char *format, ...)
fatal_exit();
}
void setup_overhead(rzip_control *control)
{
/* Work out the compression overhead per compression thread for the
* compression back-ends that need a lot of ram */
if (LZMA_COMPRESS) {
int level = control->compression_level * 7 / 9 ? : 1;
i64 dictsize = (level <= 5 ? (1 << (level * 2 + 14)) :
(level == 6 ? (1 << 25) : (1 << 26)));
control->overhead = (dictsize * 23 / 2) + (4 * 1024 * 1024);
} else if (ZPAQ_COMPRESS)
control->overhead = 112 * 1024 * 1024;
}
void setup_ram(rzip_control *control)
{
/* Use less ram when using STDOUT to store the temporary output file. */

1
util.h
View file

@ -27,6 +27,7 @@ void unlink_files(void);
void register_outputfile(FILE *f);
void fatal(const char *format, ...);
void failure(const char *format, ...);
void setup_overhead(rzip_control *control);
void setup_ram(rzip_control *control);
void round_to_page(i64 *size);
void get_rand(uchar *buf, int len);