aboutsummaryrefslogtreecommitdiff
path: root/debug/memusage.c
blob: 0716f5a20de4f5875bbb2e0621bddfb69dd39716 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
///////////////////////////////////////////////////////////////////////////////
//
/// \file       memusage.c
/// \brief      Calculates memory usage using lzma_memory_usage()
///
//  Copyright (C) 2008 Lasse Collin
//
//  This library is free software; you can redistribute it and/or
//  modify it under the terms of the GNU Lesser General Public
//  License as published by the Free Software Foundation; either
//  version 2.1 of the License, or (at your option) any later version.
//
//  This library is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
//  Lesser General Public License for more details.
//
///////////////////////////////////////////////////////////////////////////////

#include "sysdefs.h"
#include <stdio.h>

int
main(void)
{

	lzma_options_lzma lzma = {
		.dictionary_size = (1 << 27) + (1 << 26),
		.literal_context_bits = 3,
		.literal_pos_bits = 0,
		.pos_bits = 2,
		.preset_dictionary = NULL,
		.preset_dictionary_size = 0,
		.mode = LZMA_MODE_BEST,
		.fast_bytes = 48,
		.match_finder = LZMA_MF_BT4,
		.match_finder_cycles = 0,
	};

/*
	lzma_options_filter filters[] = {
		{ LZMA_FILTER_LZMA,
			(lzma_options_lzma *)&lzma_preset_lzma[6 - 1] },
		{ UINT64_MAX, NULL }
	};
*/
	lzma_options_filter filters[] = {
		{ LZMA_FILTER_LZMA, &lzma },
		{ UINT64_MAX, NULL }
	};

	printf("%u MiB\n", lzma_memory_usage(filters, true));

	return 0;
}