1 |
This reduces the time of 'emerge --info foo' by roughly 24% on my |
2 |
laptop. |
3 |
|
4 |
X-Gentoo-Bug: 556764 |
5 |
X-Gentoo-Bug-url: https://bugs.gentoo.org/show_bug.cgi?id=556764 |
6 |
--- |
7 |
pym/_emerge/actions.py | 7 +++++-- |
8 |
pym/_emerge/depgraph.py | 6 +++++- |
9 |
2 files changed, 10 insertions(+), 3 deletions(-) |
10 |
|
11 |
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py |
12 |
index 92d1f2e..01aef51 100644 |
13 |
--- a/pym/_emerge/actions.py |
14 |
+++ b/pym/_emerge/actions.py |
15 |
@@ -42,6 +42,8 @@ from portage.const import GLOBAL_CONFIG_PATH, VCS_DIRS, _DEPCLEAN_LIB_CHECK_DEFA |
16 |
from portage.const import SUPPORTED_BINPKG_FORMATS, TIMESTAMP_FORMAT |
17 |
from portage.dbapi.dep_expand import dep_expand |
18 |
from portage.dbapi._expand_new_virt import expand_new_virt |
19 |
+from portage.dbapi.IndexedPortdb import IndexedPortdb |
20 |
+from portage.dbapi.IndexedVardb import IndexedVardb |
21 |
from portage.dep import Atom, _repo_separator, _slot_separator |
22 |
from portage.eclass_cache import hashed_path |
23 |
from portage.exception import InvalidAtom, InvalidData, ParseError |
24 |
@@ -1513,9 +1515,10 @@ def action_info(settings, trees, myopts, myfiles): |
25 |
writemsg("\nemerge: searching for similar names..." |
26 |
, noiselevel=-1) |
27 |
|
28 |
- dbs = [vardb] |
29 |
+ search_index = myopts.get("--search-index", "y") != "n" |
30 |
+ dbs = [IndexedVardb(vardb) if search_index else vardb] |
31 |
#if "--usepkgonly" not in myopts: |
32 |
- dbs.append(portdb) |
33 |
+ dbs.append(IndexedPortdb(portdb) if search_index else portdb) |
34 |
if "--usepkg" in myopts: |
35 |
dbs.append(bindb) |
36 |
|
37 |
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py |
38 |
index a957108..57040ab 100644 |
39 |
--- a/pym/_emerge/depgraph.py |
40 |
+++ b/pym/_emerge/depgraph.py |
41 |
@@ -21,6 +21,7 @@ from portage.const import PORTAGE_PACKAGE_ATOM, USER_CONFIG_PATH, VCS_DIRS |
42 |
from portage.dbapi import dbapi |
43 |
from portage.dbapi.dep_expand import dep_expand |
44 |
from portage.dbapi.DummyTree import DummyTree |
45 |
+from portage.dbapi.IndexedPortdb import IndexedPortdb |
46 |
from portage.dbapi._similar_name_search import similar_name_search |
47 |
from portage.dep import Atom, best_match_to_list, extract_affecting_use, \ |
48 |
check_required_use, human_readable_required_use, match_from_list, \ |
49 |
@@ -5100,10 +5101,13 @@ class depgraph(object): |
50 |
writemsg("\nemerge: searching for similar names..." |
51 |
, noiselevel=-1) |
52 |
|
53 |
+ search_index = self._frozen_config.myopts.get("--search-index", "y") != "n" |
54 |
+ # fakedbapi is indexed |
55 |
dbs = [vardb] |
56 |
if "--usepkgonly" not in self._frozen_config.myopts: |
57 |
- dbs.append(portdb) |
58 |
+ dbs.append(IndexedPortdb(portdb) if search_index else portdb) |
59 |
if "--usepkg" in self._frozen_config.myopts: |
60 |
+ # bindbapi is indexed |
61 |
dbs.append(bindb) |
62 |
|
63 |
matches = similar_name_search(dbs, atom) |
64 |
-- |
65 |
2.4.6 |