Просмотр исходного кода

Add guess in reverseKeyLookup (huge performance increase!)

Yentl Van Tendeloo 8 лет назад
Родитель
Сommit
c8d38b1197
1 измененных файлов с 7 добавлено и 0 удалено
  1. 7 0
      kernel/modelverse_kernel/compiled.py

+ 7 - 0
kernel/modelverse_kernel/compiled.py

@@ -18,6 +18,13 @@ def reverseKeyLookupMulti(a, b, **remainder):
     raise PrimitiveFinished(result)
 
 def reverseKeyLookup(a, b, **remainder):
+    # Guess, which might work
+    guess, = yield [("RD", [a, "__%s" % b])]
+    if guess == b:
+        result, = yield [("CNV", ["__%s" % b])]
+        raise PrimitiveFinished(result)
+
+    # We failed: do the slow way
     edges, = yield [("RO", [a])]
     expanded_edges = yield [("RE", [i]) for i in edges]
     for i, edge in enumerate(expanded_edges):