﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
1491	Interactive performance needs to be improved	Per Östlund	Per Östlund	"At the moment it takes a very long time to load icons in OMEdit. This seems to be because of SCodeUtil.translateAbsyn2SCode, which takes about 81 out of 87 seconds when loading the SIUnits package in OMEdit for me (see the attached script which contains all the calls that OMEdit does when loading SIUnits). The reason for this is because every API call in Interactive that fetches information about a class, such as getIconAnnotation, calls SCodeUtil.translateAbsyn2SCode on the entire loaded program (i.e. the whole MSL). This really shouldn't be necessary, since these API calls doesn't change the program in any way. 

It should be possible to avoid this by storing the translated program, and only update it when needed. As a first step we should just cache the translated program and re-translate the whole program when the program is changed. The symbol table needs to store a cached SCode program, and the modifying API functions in Interactive needs to update this program and return the symbol table. Something to consider later might be partial updating of the program, but since non-modifying API calls are more likely to be called in large batches by e.g. OMEdit it's not as important to optimize modifying calls for now. Fixing this should improve the user experience of OMEdit quite a lot."	defect	closed	critical		Interactive Environment	trunk	fixed		Per Östlund
