mirror of
https://github.com/aria2/aria2.git
synced 2025-04-04 21:17:41 +03:00
Add --max-mmap-limit option
Set the maximum file size to enable mmap (see --enable-mmap option). The file size is determined by the sum of all files contained in one download. For example, if a download contains 5 files, then file size is the total size of those files. If file size is strictly greater than the size specified in this option, mmap will be disabled.
This commit is contained in:
parent
fc95a91eb6
commit
8f51793b19
7 changed files with 40 additions and 2 deletions
|
@ -1375,6 +1375,16 @@ Advanced Options
|
|||
downloads. Specifying 0 means no download result is kept. Default:
|
||||
``1000``
|
||||
|
||||
.. option:: --max-mmap-limit=<SIZE>
|
||||
|
||||
Set the maximum file size to enable mmap (see
|
||||
:option:`--enable-mmap` option). The file size is determined by the
|
||||
sum of all files contained in one download. For example, if a
|
||||
download contains 5 files, then file size is the total size of those
|
||||
files. If file size is strictly greater than the size specified in
|
||||
this option, mmap will be disabled.
|
||||
Default: ``9223372036854775807``
|
||||
|
||||
.. option:: --max-resume-failure-tries=<N>
|
||||
|
||||
When used with :option:`--always-resume=false, <--always-resume>` aria2 downloads file from
|
||||
|
@ -2040,6 +2050,7 @@ of URIs. These optional lines must start with white space(s).
|
|||
* :option:`max-connection-per-server <-x>`
|
||||
* :option:`max-download-limit <--max-download-limit>`
|
||||
* :option:`max-file-not-found <--max-file-not-found>`
|
||||
* :option:`max-mmap-limit <--max-mmap-limit>`
|
||||
* :option:`max-resume-failure-tries <--max-resume-failure-tries>`
|
||||
* :option:`max-tries <-m>`
|
||||
* :option:`max-upload-limit <-u>`
|
||||
|
|
|
@ -64,7 +64,9 @@ void BtFileAllocationEntry::prepareForNextAction(
|
|||
|
||||
BtSetup().setup(commands, getRequestGroup(), e, option.get());
|
||||
if (option->getAsBool(PREF_ENABLE_MMAP) &&
|
||||
option->get(PREF_FILE_ALLOCATION) != V_NONE) {
|
||||
option->get(PREF_FILE_ALLOCATION) != V_NONE &&
|
||||
getRequestGroup()->getPieceStorage()->getDiskAdaptor()->size() <=
|
||||
option->getAsLLInt(PREF_MAX_MMAP_LIMIT)) {
|
||||
getRequestGroup()->getPieceStorage()->getDiskAdaptor()->enableMmap();
|
||||
}
|
||||
if (!getRequestGroup()->downloadFinished()) {
|
||||
|
|
|
@ -447,6 +447,16 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers()
|
|||
op->setChangeGlobalOption(true);
|
||||
handlers.push_back(op);
|
||||
}
|
||||
{
|
||||
OptionHandler* op(new UnitNumberOptionHandler(
|
||||
PREF_MAX_MMAP_LIMIT, TEXT_MAX_MMAP_LIMIT,
|
||||
util::itos(std::numeric_limits<int64_t>::max()), 0));
|
||||
op->addTag(TAG_ADVANCED);
|
||||
op->setInitialOption(true);
|
||||
op->setChangeGlobalOption(true);
|
||||
op->setChangeOptionForReserved(true);
|
||||
handlers.push_back(op);
|
||||
}
|
||||
{
|
||||
OptionHandler* op(
|
||||
new UnitNumberOptionHandler(PREF_MAX_OVERALL_DOWNLOAD_LIMIT,
|
||||
|
|
|
@ -66,7 +66,9 @@ void StreamFileAllocationEntry::prepareForNextAction(
|
|||
// RequestGroup::createInitialCommand()
|
||||
getRequestGroup()->getDownloadContext()->resetDownloadStartTime();
|
||||
if (option->getAsBool(PREF_ENABLE_MMAP) &&
|
||||
option->get(PREF_FILE_ALLOCATION) != V_NONE) {
|
||||
option->get(PREF_FILE_ALLOCATION) != V_NONE &&
|
||||
getRequestGroup()->getPieceStorage()->getDiskAdaptor()->size() <=
|
||||
option->getAsLLInt(PREF_MAX_MMAP_LIMIT)) {
|
||||
getRequestGroup()->getPieceStorage()->getDiskAdaptor()->enableMmap();
|
||||
}
|
||||
if (getNextCommand()) {
|
||||
|
|
|
@ -357,6 +357,8 @@ PrefPtr PREF_RLIMIT_NOFILE = makePref("rlimit-nofile");
|
|||
PrefPtr PREF_MIN_TLS_VERSION = makePref("min-tls-version");
|
||||
// value: 1*digit
|
||||
PrefPtr PREF_SOCKET_RECV_BUFFER_SIZE = makePref("socket-recv-buffer-size");
|
||||
// value: 1*digit
|
||||
PrefPtr PREF_MAX_MMAP_LIMIT = makePref("max-mmap-limit");
|
||||
|
||||
/**
|
||||
* FTP related preferences
|
||||
|
|
|
@ -314,6 +314,8 @@ extern PrefPtr PREF_RLIMIT_NOFILE;
|
|||
extern PrefPtr PREF_MIN_TLS_VERSION;
|
||||
// value: 1*digit
|
||||
extern PrefPtr PREF_SOCKET_RECV_BUFFER_SIZE;
|
||||
// value: 1*digit
|
||||
extern PrefPtr PREF_MAX_MMAP_LIMIT;
|
||||
|
||||
/**
|
||||
* FTP related preferences
|
||||
|
|
|
@ -1057,5 +1057,14 @@
|
|||
" the command given by --on-bt-download-complete\n" \
|
||||
" is executed. To disable this action, give false\n" \
|
||||
" to this option.")
|
||||
#define TEXT_MAX_MMAP_LIMIT \
|
||||
_(" --max-mmap-limit=SIZE Set the maximum file size to enable mmap (see\n" \
|
||||
" --enable-mmap option). The file size is\n" \
|
||||
" determined by the sum of all files contained in\n" \
|
||||
" one download. For example, if a download\n" \
|
||||
" contains 5 files, then file size is the total\n" \
|
||||
" size of those files. If file size is strictly\n" \
|
||||
" greater than the size specified in this option,\n" \
|
||||
" mmap will be disabled.")
|
||||
|
||||
// clang-format on
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue