locationd profiling (#1625)
	
		
	
				
					
				
			
							parent
							
								
									165bcf1f31
								
							
						
					
					
						commit
						66455b075d
					
				
				 2 changed files with 51 additions and 0 deletions
			
			
		| @ -0,0 +1,49 @@ | ||||
| #!/usr/bin/env python3 | ||||
| 
 | ||||
| import cProfile  # pylint: disable=import-error | ||||
| import pprofile  # pylint: disable=import-error | ||||
| import pyprof2calltree  # pylint: disable=import-error | ||||
| 
 | ||||
| from tools.lib.logreader import LogReader | ||||
| from selfdrive.locationd.locationd import locationd_thread | ||||
| from selfdrive.test.profiling.lib import SubMaster, PubMaster, ReplayDone | ||||
| 
 | ||||
| BASE_URL = "https://commadataci.blob.core.windows.net/openpilotci/" | ||||
| 
 | ||||
| CARS = { | ||||
|   'toyota': ("77611a1fac303767|2020-02-29--13-29-33/3", "TOYOTA COROLLA TSS2 2019"), | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| def get_inputs(msgs, process): | ||||
|   sub_socks = ['gpsLocationExternal', 'sensorEvents', 'cameraOdometry', 'liveCalibration', 'carState'] | ||||
|   trigger = 'cameraOdometry' | ||||
| 
 | ||||
|   sm = SubMaster(msgs, trigger, sub_socks) | ||||
|   pm = PubMaster() | ||||
|   return sm, pm | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|   segment, fingerprint = CARS['toyota'] | ||||
|   segment = segment.replace('|', '/') | ||||
|   rlog_url = f"{BASE_URL}{segment}/rlog.bz2" | ||||
|   msgs = list(LogReader(rlog_url)) | ||||
| 
 | ||||
|   # Statistical | ||||
|   sm, pm = get_inputs(msgs, 'locationd') | ||||
|   with pprofile.StatisticalProfile()(period=0.00001) as pr: | ||||
|     try: | ||||
|       locationd_thread(sm, pm) | ||||
|     except ReplayDone: | ||||
|       pass | ||||
|   pr.dump_stats('cachegrind.out.locationd_statistical') | ||||
| 
 | ||||
|   # Deterministic | ||||
|   sm, pm = get_inputs(msgs, 'controlsd') | ||||
|   with cProfile.Profile() as pr: | ||||
|     try: | ||||
|       locationd_thread(sm, pm) | ||||
|     except ReplayDone: | ||||
|       pass | ||||
|   pyprof2calltree.convert(pr.getstats(), 'cachegrind.out.locationd_deterministic') | ||||
					Loading…
					
					
				
		Reference in new issue