33import uio
44import ujson
55import uos
6+ import utime # for timing calls
67
78import _thread
89import traceback
@@ -19,14 +20,18 @@ def good_stack_size():
1920
2021# Run the script in the current thread:
2122def execute_script (script_source , is_file , cwd = None , classname = None ):
23+ import utime # for timing read and compile
2224 thread_id = _thread .get_ident ()
2325 compile_name = 'script' if not is_file else script_source
2426 print (f"Thread { thread_id } : executing script with cwd: { cwd } " )
2527 try :
2628 if is_file :
2729 print (f"Thread { thread_id } : reading script from file { script_source } " )
2830 with open (script_source , 'r' ) as f : # No need to check if it exists as exceptions are caught
31+ start_time = utime .ticks_ms ()
2932 script_source = f .read ()
33+ read_time = utime .ticks_diff (utime .ticks_ms (), start_time )
34+ print (f"execute_script: reading script_source took { read_time } ms" )
3035 script_globals = {
3136 'lv' : lv ,
3237 '__name__' : "__main__"
@@ -37,8 +42,14 @@ def execute_script(script_source, is_file, cwd=None, classname=None):
3742 if cwd :
3843 sys .path .append (cwd )
3944 try :
45+ start_time = utime .ticks_ms ()
4046 compiled_script = compile (script_source , compile_name , 'exec' )
47+ compile_time = utime .ticks_diff (utime .ticks_ms (), start_time )
48+ print (f"execute_script: compiling script_source took { compile_time } ms" )
49+ start_time = utime .ticks_ms ()
4150 exec (compiled_script , script_globals )
51+ end_time = utime .ticks_diff (utime .ticks_ms (), start_time )
52+ print (f"apps.py execute_script: exec took { end_time } ms" )
4253 # Introspect globals
4354 #classes = {k: v for k, v in script_globals.items() if isinstance(v, type)}
4455 #functions = {k: v for k, v in script_globals.items() if callable(v) and not isinstance(v, type)}
@@ -49,7 +60,10 @@ def execute_script(script_source, is_file, cwd=None, classname=None):
4960 if classname :
5061 main_activity = script_globals .get (classname )
5162 if main_activity :
63+ start_time = utime .ticks_ms ()
5264 Activity .startActivity (None , Intent (activity_class = main_activity ))
65+ end_time = utime .ticks_diff (utime .ticks_ms (), start_time )
66+ print (f"execute_script: Activity.startActivity took { end_time } ms" )
5367 else :
5468 print ("Warning: could not find main_activity" )
5569 except Exception as e :
@@ -102,6 +116,8 @@ def start_app_by_name(app_name, is_launcher=False):
102116
103117def start_app (app_dir , is_launcher = False ):
104118 print (f"main.py start_app({ app_dir } ,{ is_launcher } )" )
119+ import utime
120+ start_time = utime .ticks_ms ()
105121 mpos .ui .set_foreground_app (app_dir ) # would be better to store only the app name...
106122 manifest_path = f"{ app_dir } /META-INF/MANIFEST.JSON"
107123 app = mpos .apps .parse_manifest (manifest_path )
@@ -117,6 +133,8 @@ def start_app(app_dir, is_launcher=False):
117133 mpos .ui .open_bar ()
118134 else :
119135 mpos .ui .close_bar ()
136+ end_time = utime .ticks_diff (utime .ticks_ms (), start_time )
137+ print (f"start_app() took { end_time } ms" )
120138
121139def restart_launcher ():
122140 mpos .ui .empty_screen_stack ()
@@ -326,7 +344,10 @@ def _launch_activity(intent, result_callback=None):
326344 activity = intent .activity_class ()
327345 activity .intent = intent
328346 activity ._result_callback = result_callback # Pass callback to activity
347+ start_time = utime .ticks_ms ()
329348 activity .onCreate ()
349+ end_time = utime .ticks_diff (utime .ticks_ms (), start_time )
350+ print (f"apps.py _launch_activity: activity.onCreate took { end_time } ms" )
330351 return activity
331352
332353 @staticmethod
0 commit comments