##// END OF EJS Templates
revlog: add the option to track the expected compression upper bound...
revlog: add the option to track the expected compression upper bound There are various optimization we can do if we can estimate the size of delta before actually spending CPU compressing them. So we add a attributed dedicated to tracking that. We only use it on Manifest because (1) it structure is quite stable across all Mercurial repository so its compression ratio is fairly universal. This is the revlog with most extreme delta (cf the sparse-revlog optimization). This will be put to use in later changesets. Right now the compression upper bound is set to 10. This is a fairly conservative value (observed value is more around 3), but I prefer to be safe while introducing the optimization principles. We can tune the optimization threshold later.

File last commit:

r37644:0a9c0d34 default
r42662:bc4373ba default
Show More
__init__.py
27 lines | 608 B | text/x-python | PythonLexer
Gregory Szorc
thirdparty: vendor futures 3.2.0...
r37641 # Copyright 2009 Brian Quinlan. All Rights Reserved.
# Licensed to PSF under a Contributor Agreement.
"""Execute computations asynchronously using threads or processes."""
Gregory Szorc
futures: switch to absolute and relative imports...
r37644 from __future__ import absolute_import
Gregory Szorc
thirdparty: vendor futures 3.2.0...
r37641 __author__ = 'Brian Quinlan (brian@sweetapp.com)'
Gregory Szorc
futures: switch to absolute and relative imports...
r37644 from ._base import (
FIRST_COMPLETED,
FIRST_EXCEPTION,
ALL_COMPLETED,
CancelledError,
TimeoutError,
Future,
Executor,
wait,
as_completed,
)
from .thread import ThreadPoolExecutor
Gregory Szorc
thirdparty: vendor futures 3.2.0...
r37641
try:
Gregory Szorc
futures: switch to absolute and relative imports...
r37644 from .process import ProcessPoolExecutor
Gregory Szorc
thirdparty: vendor futures 3.2.0...
r37641 except ImportError:
# some platforms don't have multiprocessing
pass