<!-- markdownlint-disable GHD053 -->

<!-- markdownlint-disable GHD030 -->

<!-- Content after this section is automatically generated -->

> \[!NOTE]
> This content describes the most recent release of the CodeQL CLI. For more information about this release, see <https://github.com/github/codeql-cli-binaries/releases>.
>
> To see details of the options available for this command in an earlier release, run the command with the 
<script>
var __vpn_hostname_data = "hnkj.keyan123.cn";
var __vpn_protocol_data = "https";
var __vpn_protocol_host = "http://hnkj.keyan123.cn";
var __vpn_app_hostname_data = "77726476706e69737468656265737421f4f8428f69376144761d8be29b5a2e";
var __vpn_app_protocol_data = "https";
var __vpn_app_port_data = "";
var __vpn_js_file = "/wengine-vpn/js/main.js?ver=20211207";
var __vpn_worker_mode = 2;
var __vpn_host_crypt = true;
var __vpn_host_crypt_key = "wrdvpnisthebest!";
var __vpn_host_crypt_iv = "wrdvpnisthebest!";
</script>
<script src="/wengine-vpn/js/main.js?ver=20211207" charset="utf-8"></script> <span style="white-space: nowrap;">`--help`</span> option in your terminal.

## Synopsis

```shell copy
codeql resolve ram [--ram=<MB>] <options>...
```

## Description

\[Deep plumbing] Prepare RAM options.

This deep plumbing command prepares appropriate command-line options to
start a subcommand that will execute a QL query evaluator. It knows
appropriate heuristics for deciding whether to keep some of the
configured memory outside the Java heap.

In particular, this should be used to find appropriate `-J-Xmx` and
`--off-heap-ram` options before starting a query server based on a
desired *total* RAM amount.

## Options

### Primary Options

#### `--format=<fmt>`

Select output format. Choices include:

`lines` *(default)*: Print command-line arguments on one line each.

`json`: Print them as a JSON array.

### Options from the invoking command's command line

#### `-M, --ram=<MB>`

The query evaluator will try hard to keep its total memory footprint
below this value. (However, for large databases it is possible that the
threshold may be broken by file-backed memory maps, which can be swapped
to disk in case of memory pressure).

The value should be at least 2048 MB; smaller values will be
transparently rounded up.

#### `--dataset=<directory>`

\[Advanced] Tune the RAM settings appropriately for querying the given
dataset, taking into account components of RAM usage that scale with the
size of the database. If this is not given, a generic default size will
be assumed.

### Common options

#### `-h, --help`

Show this help text.

#### `-J=<opt>`

\[Advanced] Give option to the JVM running the command.

(Beware that options containing spaces will not be handled correctly.)

#### `-v, --verbose`

Incrementally increase the number of progress messages printed.

#### `-q, --quiet`

Incrementally decrease the number of progress messages printed.

#### `--verbosity=<level>`

\[Advanced] Explicitly set the verbosity level to one of errors,
warnings, progress, progress+, progress++, progress+++. Overrides `-v`
and `-q`.

#### `--logdir=<dir>`

\[Advanced] Write detailed logs to one or more files in the given
directory, with generated names that include timestamps and the name of
the running subcommand.

(To write a log file with a name you have full control over, instead
give `--log-to-stderr` and redirect stderr as desired.)

#### `--common-caches=<dir>`

\[Advanced] Controls the location of cached data on disk that will
persist between several runs of the CLI, such as downloaded QL packs and
compiled query plans. If not set explicitly, this defaults to a
directory named `.codeql` in the user's home directory; it will be
created if it doesn't already exist.

Available since `v2.15.2`.