Browse Source

Optimize reading the frame for each user upon entry of a function

Yentl Van Tendeloo 7 years ago
parent
commit
d8ba2bd2a2
1 changed files with 17 additions and 14 deletions
  1. 17 14
      kernel/modelverse_kernel/main.py

+ 17 - 14
kernel/modelverse_kernel/main.py

@@ -387,21 +387,24 @@ class ModelverseKernel(object):
 
     def execute_jit(self, task_root, inst, taskname, params = {}, store=False):
         # execute_jit
-        try:
-            task_frame, =    yield [("RD", [task_root, "frame"])]
-            symbols, =       yield [("RD", [task_frame, "symbols"])]
-            dict_keys_ref, =  yield [("RDK", [symbols])]
-            if dict_keys_ref:
-                dict_keys_ref_n =   yield [("RD", [i, "name"]) for i in dict_keys_ref]
-                dict_keys =       yield [("RV", [i]) for i in dict_keys_ref_n]
-                dict_values_elem = yield [("RDN", [symbols, i]) for i in dict_keys_ref]
-                dict_values = yield [("RD", [i, "value"]) for i in dict_values_elem]
-
-                parameters = dict(zip(dict_keys, dict_values))
-                parameters.update(params)
-            else:
+        if store:
+            try:
+                task_frame, =    yield [("RD", [task_root, "frame"])]
+                symbols, =       yield [("RD", [task_frame, "symbols"])]
+                dict_keys_ref, =  yield [("RDK", [symbols])]
+                if dict_keys_ref:
+                    dict_keys_ref_n =   yield [("RD", [i, "name"]) for i in dict_keys_ref]
+                    dict_keys =       yield [("RV", [i]) for i in dict_keys_ref_n]
+                    dict_values_elem = yield [("RDN", [symbols, i]) for i in dict_keys_ref]
+                    dict_values = yield [("RD", [i, "value"]) for i in dict_values_elem]
+
+                    parameters = dict(zip(dict_keys, dict_values))
+                    parameters.update(params)
+                else:
+                    parameters = params
+            except:
                 parameters = params
-        except:
+        else:
             parameters = params
 
         for p in parameters.keys():