瀏覽代碼

Added preliminary profiling code

Yentl Van Tendeloo 8 年之前
父節點
當前提交
b21bc81f6e
共有 2 個文件被更改,包括 10 次插入0 次删除
  1. 7 0
      kernel/modelverse_jit/tree_ir.py
  2. 3 0
      scripts/run_local_modelverse.py

+ 7 - 0
kernel/modelverse_jit/tree_ir.py

@@ -30,6 +30,8 @@
 
 import modelverse_jit.source_map as source_map
 
+PROFILING = True
+
 NOP_LITERAL = None
 """A literal that results in a nop during which execution may be interrupted
    when yielded."""
@@ -455,6 +457,8 @@ class ReturnInstruction(VoidInstruction):
         """Generates Python code for this instruction."""
         if self.value.has_definition():
             self.value.generate_python_def(code_generator)
+        if PROFILING:
+            code_generator.append_line("print('%s : %s' % (___profiling[1], time.time() - ___profiling[0]))")
         code_generator.append_line(
             'raise PrimitiveFinished(' +
             self.value.generate_python_use(code_generator) +
@@ -1238,6 +1242,9 @@ class DefineFunctionInstruction(VariableInstruction):
         code_generator.append_line('def %s(%s):' % (
             code_generator.get_result_name(self), ', '.join(self.parameter_list)))
         code_generator.increase_indentation()
+        if PROFILING:
+            code_generator.append_line("import time")
+            code_generator.append_line("___profiling = (time.time(), '%s')" % self.name)
         self.body.generate_python_def(code_generator)
         code_generator.decrease_indentation()
 

+ 3 - 0
scripts/run_local_modelverse.py

@@ -10,6 +10,9 @@ else:
 subprocess.check_call([sys.executable, "-m", "sccd.compiler.sccdc", "-p", "threads", "server.xml"], cwd="hybrid_server")
 subprocess.call([sys.executable, "run_mvk_server.py", port], cwd="hybrid_server")
 
+# Write to /tmp/stdout
+#subprocess.call([sys.executable, "run_mvk_server.py", port], cwd="hybrid_server", stdout=open("/tmp/stdout", "w"))
+
 # Additional ways of calling...
 #subprocess.call([sys.executable, "run_mvk_server.py", port] + ["--kernel=baseline-jit"], cwd="hybrid_server")
 #subprocess.call([sys.executable, "-m", "cProfile", "-s", "tottime", "run_mvk_server.py", port], cwd="hybrid_server", stdout=open("/tmp/stdout", 'w'), stderr=open("/tmp/stderr", "w"))