Here’s a few things you can do to diagnose slow startups.
First, try starting Softimage in the factory-default configuration. The quickest way to do that is to simply rename your Softimage User folder. If you see a difference in startup times, then it may be due to workgroups or the addons and plugins you have installed.
You can use the XSI_LOG_LOAD_TIME environment variable to log the load times for libraries and plug-ins at startup. Add this line to your setenv.bat, or set it in a Softimage command prompt before you run xsi.exe:
That will get you something like this in the history log:
// Initialize Mental Ray: Elapsed time (ms): 563.28 // Load Command Definitions: Elapsed time (ms): 1293.66 // Project List Initialization: Elapsed time (ms): 53.00 // Load Views and Shelfs: Elapsed time (ms): 1453.46 // Scan for Custom SPDLs: Elapsed time (ms): 74.33 // Load Layouts: Elapsed time (ms): 356.29 // Loading User plug-ins: Elapsed time (ms): 239.25 // Loading User addon plug-ins: Elapsed time (ms): 0.28 // Loading Workgroup plug-ins: Elapsed time (ms): 0.00 // Loading Workgroup addon plug-ins: Elapsed time (ms): 0.00 // Loading Factory plug-ins: Elapsed time (ms): 2173.86 // Loading Factory addon plug-ins: Elapsed time (ms): 2611.39 // Loading setup plug-ins: Elapsed time (ms): 0.03 // XSI Init: Elapsed time (s): 31.92
Another thing you could do is run Process Monitor to capture a log of all XSI.exe startup activity, and then check the log for any “suspicious” activity. All the entries are time-stamped, and you add a Duration column to see how long activity took.
You can even filter on the Duration, to quickly check for anything that took excessively long (for example, Duration more than 0.02). The Tools menu also has some useful stuff, like a File Summary:
and a Process Activity Summary:
NOTE The time spent can vary from startup to startup, so I wouldn’t jump to conclusions based on just one log. I’d log multiple startups to see if there was a definite pattern. For example, one time I saw xsi.exe spend three seconds reading adlmint.dll, the next time it was less than .001s.