LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Performance Issues

Hi to all,
this is more a general issue I want to discuss in the forum, than a
dedicated problem report.

We have developed some CVI applications over the years and I think I can say
I'm a really experienced CVI user. As complexity and data throughput of the
applications grows, there becomes one issue more and more a bottle neck, and
this is performance. Especially, when independent CVI applications are
running on a single machine (means more instances of CVIRTE are active) the
performance decreases significantly. To perform a meaningful test, I made an
easy CVI (6.0) application that shows a panel with a single numeric
indicator on it. The value of that indicator is incremented 10 times per
second controlled by a timer (see attachment). Running
a single instance of
this application gives me a system load of 10% on my Pentium 3 / 550 MHz,
Win2k. Running 9 instances of the application increases the system load to
90%. Can this be true? I don't think, I made any easy mistake, the
application is built in release mode and sleep policy is set to "sleep more"
..

Doing the same with MSVC results in 0% (!) system load when 20 (!) instances
of the application are active (see attachment).

For what reason the CVIRTE needs so much CPU time? For time consuming
algorithms we use an external optimizing compiler, but the event handling of
the CVIRTE is out of my control. In cases like these, the lack of a
profiling tool becomes a real problem.

What are your experiences?
Any suggestions from other users?
What are the comments from the NI specialists? Any plans for the future?
Best Regards
Torsten
0 Kudos
Message 1 of 2
(3,215 Views)
It has to do with the use of the timer.
I have similar "complains" about CVI.
If you don't need hight precision you may think to use Windows Timer
You can find a simple sample code and some explanaition on the following
page : http://perso.wanadoo.fr/philippe.baucour/pratiquer/timer/timer2.html
--
Philippe
Feel free to visit : http://perso.wanadoo.fr/philippe.baucour




"Lenin" a �crit dans le message de
news:3f2528bb@newsgroups....
> Hi to all,
> this is more a general issue I want to discuss in the forum, than a
> dedicated problem report.
>
> We have developed some CVI applications over the years and I think I can
say
> I'm a really experienced CVI user. As complexity and data throughput of
the
> applications grows, there becomes one issue more and more a bottle neck,
and
> this is performance. Especially, when independent CVI applications are
> running on a single machine (means more instances of CVIRTE are active)
the
> performance decreases significantly. To perform a meaningful test, I made
an
> easy CVI (6.0) application that shows a panel with a single numeric
> indicator on it. The value of that indicator is incremented 10 times per
> second controlled by a timer (see attachment). Running a single instance
of
> this application gives me a system load of 10% on my Pentium 3 / 550 MHz,
> Win2k. Running 9 instances of the application increases the system load to
> 90%. Can this be true? I don't think, I made any easy mistake, the
> application is built in release mode and sleep policy is set to "sleep
more"
> .
>
> Doing the same with MSVC results in 0% (!) system load when 20 (!)
instances
> of the application are active (see attachment).
>
> For what reason the CVIRTE needs so much CPU time? For time consuming
> algorithms we use an external optimizing compiler, but the event handling
of
> the CVIRTE is out of my control. In cases like these, the lack of a
> profiling tool becomes a real problem.
>
> What are your experiences?
> Any suggestions from other users?
> What are the comments from the NI specialists? Any plans for the future?
> Best Regards
> Torsten
>
Message 2 of 2
(3,215 Views)