VB .Net application slow to startup

I have a VB .NET windows application that is slow to start up intermittently. My users are reporting that it can sometimes take up to 10-15 seconds. On startup, I have tried to minimize code to just show a form. No, splash screen, no database opens, etc. Couple of things that might be the cause.
1.      The installer  if I delete a file, say a Bitmap file, I notice that the file is recreated upon startup, so my installer must be checking the status of the application on startup. How can I make it stop doing this?
2.      I do use logging and log a program start message on startup
3.      I do use the application settings (am going to stop this because I find it unreliable any thoughts?)
4.      The form has a fair amount of controls, maybe 30, but not a huge amount.
5.      I do have one 32 bit Com object (Redemption) that gets loaded later, not a startup.
6.      I do have a web component (SharePoint list), but no action at startup
Any Ideas would be appreciated. Thanks.
bartteemsAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

PlatoConsultantCommented:
u need to use some testing tool or profiler which will tell u exactly what is slowing down ...
0
PlatoConsultantCommented:
From MSDN Documentation

"A code profiler is a software tool, implemented as a DLL, which is
called by the runtime system during the execution of an image. The
profiler receives notifications each time a function is entered or
exited, as well as when other events occur that are of interest to the
programmer. By gathering statistics on these events, a profiler can
build a comprehensive picture of which routines used the most CPU
time, when garbage collections occurred, if exceptions were thrown,
and so on.

The runtime system connects a profiler to a process during process
initialization. To determine what to do, the runtime system checks two
environment variables: COR_ENABLE_PROFILING and COR_PROFILER.

If COR_ENABLE_PROFILING is absent or is set to the value 0, the
runtime system will not connect the process to the profiler.
Otherwise, the runtime system will connect the process to the profiler
whose specified class identifier (CLSID) is the value of COR_PROFILER.

For example, the command line causes the runtime system to create an
instance of the profiler COM class with this CLSID and connect it to
the process.

set Cor_Profiler={32E2F4DA-1BEA-47ea-88F9-C5DAF691C94A}
The profiler must implement the ICorProfilerCallback interface, which
the runtime system subsequently calls to apprise the profiler of
interesting events."
0
bartteemsAuthor Commented:
Thank you PlatoConsultant. My issue is that the slowdown occurs on users machines, not mine, and it is intermittent, Sometimes it happens, sometimes not. The app is running on about 4,000 machines and I am getting complaints from about 400-500 of them. It does appear that the program is slower to start the first time after reboot, but then subsequent starts and stops are quicker. So my ability to debug via a profiler is limited.
0
Cloud Class® Course: Microsoft Exchange Server

The MCTS: Microsoft Exchange Server 2010 certification validates your skills in supporting the maintenance and administration of the Exchange servers in an enterprise environment. Learn everything you need to know with this course.

PlatoConsultantCommented:
http://www.microsoft.com/downloads/details.aspx?FamilyId=86CE6052-D7F4-4AEB-9B7A-94635BEEBDDA&displaylang=en
CLR Profiler (v1.1)
Brief Description
The CLR Profiler allows developers to see the allocation profile of their manage applications.

The CLR Profiler includes a number of very useful views of the allocation profile, including a histogram of allocated types, allocation and call graphs, a time line showing GCs of various generations and the resulting state of the managed heap after those collections, and a call tree showing per-method allocations and assembly loads.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
PlatoConsultantCommented:
Sorry Complex Case, May be u should write Event Log, trace or log file... then u will get the required problem

may be CLR issues or Microsoft Bug ... or Operating system or Dot Net is missing some critical update...


0
bartteemsAuthor Commented:
Thank you for the assistance, I am exploring the profiler.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.