VI execution speed in subpanel is slow

Hello,
I have the following problem with subpanels. I have a VI that should run inside of a subpanel. This VI contains an Image Display component (Vision). This Image Display is updated with a new image inside a while loop every 40 milliseconds. This is the one and only action inside of this loop. When I run this VI in a subpanel, the execution slows down to 200 ms for the Image Display update action (for the while loop). I measured the this with a Timervalue (ms) component. If my application runs the VI outside of the subpanel in an own window then the timig of 40 milliseconds works perfect. The only difference between the two situation is that the VI runs in or outside of a subpanel.
This is a great problem for me because my camera captures images with a framerate of 7,5 fps. So an Image Display update time of 200 ms is not acceptable for my application. Is this a known issue. Is there a workaround or some settings that I should tweak to improve execution speed of VIs in a subpanel. Or should i simply not use subpanels if execution speed matters - then it would be good to write this into the subpanel documentation. I carefully read the documentation an searched the dicussion forum but I could not find an answer.
Thank you very much for any help.

Hey Incredible,
could you tell me your labview version and please post your labview code.
Kind regards,
Elmar

Similar Messages

  • How do I associate timing with multiple AI loops that is independan​t of loop execution speed

    I am using Labview 7.1 and I am performing AI of
    voltage on different channels of the same multifunction DAQ.  I am
    using while loops to aquire the data.  I am writing the data to
    spreadsheet file with an associated time as a 2D array.  Currently I am
    using the 'elapsed time' interactive subVI to get the time in seconds
    (attempting to use the 'Get Date/Time in seconds' and converting it to
    DBL results in time values that do not change. My thoughts are that
    maybe the number of seconds is too large to display single second
    precision with a DBL floating point number). When I run AI on two
    multiple loops they execute at different rates and thus the time values
    from "elapsed time" are accumulated at different rates. I have tried
    using timed loops to control timing, but if one loop executes at a rate
    slower than the timing of the loop the 'elapsed time' still accumulates
    at different rates.  I need to be able to associate both analog inputs
    to the same time
    value in the spreadsheet value and I would like to find a way to
    associate a time with each data point that is independant of loop
    execution speed (although I would still like to control execution speed
    of the loops. I am pretty new to Labview and programming in general,
    any help would be greatly appreciated.

    If you want to read more than one AI at the same time, you should use a trigger.  You would need to set up the AI Trigger to an external source.  Then you would have to use a function generator or digital out to create a clock.  The clock would be wired to the AI external trigger.  When the clock goes high (or low depending on configuration), both AIs would read.  That is the method I use when needing to sync multiple AI inputs.
    - tbob
    Inventor of the WORM Global

  • Execution speed improvements of FGV over locals

    This my first post.  I am new to LabVIEW and am currently writing my first significant application.  I am actually modifying an existing application, but am adding additional functionality.
    I have read this VI Execution Speed article but still have questions http://zone.ni.com/reference/en-XX/help/371361H-01/lvconcepts/vi_execution_speed/
    As an example, I am populating an xy plot with several sets of data, such as saved data points and a curve fit.  I am currently using a case structure to decide when to write various elements.  As an example, I only write the curve fit one time and it remains static as other pieces of data are added to the graph. In an attempt to make things faster I did not want to redo and redraw the fit each time.  I am using locals within the case to populate the graph.  In the default case nothing if written to these locals (and I assume the graph is not redrawn)?
    I now realize that instead using a case in which nothing is written, I could use a feedback node (to write the previous case). The in addition, in place of using a local, I could use a Functional Global Variable.
    Would it be better to have several cases which write locals to populate the plot and one case which writes nothing  OR Have the several cases write to a FGV and then a default case which writes the last data to the FGV via a feedback node?
    The first seems like less load as nothing is written in the default case, but the other cases do write to a local which has a front panel object that I don't need or want.
    Iis there any benefit to hiding unused front panel objects?
    Is there a way to create a local without front panel object?
    Finally, with a tabbed UI, are objects on the non active tabs being redrawn and slowing the process?

    Good questions!
    Starting from the bottom:
    Iis there any benefit to hiding unused front panel objects?
    Is there a way to create a local without front panel object?
    No and No. Local variables are generally a poor way to store and move data. For the reasons you cited (FP object you do not want or need, hidden FP objects) and that they force a copy of the data and may cause a thread switch to the UI thread.
    Finally, with a tabbed UI, are objects on the non active tabs being redrawn and slowing the process?
    It depends. Newer versions of LV are generally smart enough that non-visible indicators are not redrawn. This may not have been true in older versions, although I do not know when the changes were made.
    You certainly do not need to redo the fit if the data has not changed. I think the entire graph gets redrawn when any new data is written.
    Search for Ben's extremely informative Nugget on Action Engines (AE). An Action Engine is a FGV with added capabilities. It may be a very good option for what you are trying to do. It could store all the data sets, update the graphs, and make the data available where it may be needed without extra copies. With the AE you could easily acquire and store data at one rate and update the graphs at a (slower) rate appropriate to the users eyes and brains. Updating graphs more than ~10 times per second is a waste of resources because the user cannot respond any faster than that. Also you could write a subset or reduced data set to the graph if the amount of data is larger than the number of pixels in the plot.
    Lynn

  • EXECUTION SPEED OF FINISHED PROGRAM

    Thanks Guys, You comments are really encouraging.
    I agree Java is great!
    My question really is put better this way:
    The Execution speed of finished Java programs is slow and often does require much memory? Why is this and what are the solutions?
    Thanks again

    The Execution speed of finished Java programs is slow and often does require much memory? Why is
    this and what are the solutions?Well, the solution is simple then: leave those Java programs unfinished; classic composers did the
    same and they got famous for it ... Seriously though, your question is too vague; what is 'slow' and
    what is 'much memory'? Before the application was 'finished' did you do any (unit) tests? It can't be
    as if suddenly you go "my golly, it's slow and big now it's finished; lets complain". Care to elaborate?
    kind regards,
    Jos (fast, small and so soft for your hands ;-)

  • VI execution speed depending on mouse movement

    Hi,
    I have a large application that sometimes became very very slow. When It happens the only thing that I was able to notice is that moving mouse, execution speed of vi come back normal. I checked all the opened reference but I didn't find any not closed reference.
    Any tip will be helpfull..
    Golzio

    can you give us any other information or post an example of the program. Does it use an event structure, data acquisition, are you performing file i/o? If you can give us an example it would be most helpful. Thanks
    BJD1613
    Lead Test Tools Development Engineer
    Philips Respironics
    Certified LV Architect / Instructor

  • Execution speed and Print Statements

    I use so many "System.out.println" statements in my java program.
    Will it reduce the execution speed of the application?

    Everything that does something will make the application slower.
    You should instead ask yourself if you need the print statements, and if the application is fast enough. You can also execute your application in a profiler to find bottle necks.
    Kaj

  • First execution of sql statements is slow every morning

    Dears,
    we are running an oracle11g database (HP-UX Itanium) and have the following problem:
    Every morning the first execution of statements is very slow.
    After the first execution the statements are running fine.
    Does anyone have an idea where this can come from?
    Is it possible that the cache (shared pool, etc.) will be deleted every night (for example when new statistics are generated or something else)?
    Regards,
    Ilja

    I think you are close to answering your question.
    As you know, Oracle 11g has an automated job to run performance stats every night at approx. 10:00pm (until 2:00am).
    This is run by the dbms_scheduler.
    This could be causing the shared_pool to be flushed because it certainly uses it a lot. I have to manually flush the shared_pool every night in one of my databases before this job runs otherwise I get an ORA-01461.
    But, what I'm surprised is that you have this problem only in the morning.
    It seems you would want to pin your SQL in memory and perhaps set a profile for your execution.
    You don't bounce your database every night, do you?

  • Dynamic link from Premiere to Speed grade is incredible slow.

    Dynamic link from Premiere to Speed grade is incredible slow. About 10 minutes or so. I usually measure the time by hands of Solitaire, min 3 wins.  I've trashed prefs, OS and apps all updated, run system maintenance. I'm at a loss. This workflow isn't working for me. Please give me some troubleshooting ideas.
    Thanks Bill
    Mac OS 10.10.2 64gb ram
    Premiere CC 2014 8.2.0
    Speedgrade Cc 2014

    bill lauer wrote:
    Or is the workflow save/Quit my project in Premiere. then open in Speedgrade. Then save/Quit my project in Speedgrade and re-open in Premiere?
    yeah thats basically it, you could leave premiere open but save and close the project before opening it up in speedgrade. if you are going to be in speedgrade a while, its best to just close premiere so it doesn't tie up any system resources sitting in the background. the dynamic link buttons/commands in premiere and speedgrade just save, close, and open in other program. so once you do your work in speedgrade save the project, close, then open it back in premiere and it should all be there.

  • Why is the difference in execution speed of the function "SetCtrlVa​l" between constant and changing values so small ?

    In my large application (1 MB exe-file) I am continuously updating a lot of numeric controls with new values. Most of them do not really change their value. Within my search of improving the performance of my application I noticed, that there is only a small difference of the execution speed between a call of "SetCtrlValue" with constant values and calls with changing values. It runs much faster (25 times on my PC), if I get the actual control value with "GetCtrlVal", compare it with my new value an do a call to "SetCtrlVal" only if the current value and the new value are different.
    My questions to CVI-developers is:
    Isn't it possib
    le to do this compare within the function "SetCtrlVal"
    My question to all CVI-users is:
    Does anyone have similar tips to improve the performance of CVI applications ?
    I developed a small test application for this problem, which I can mail to interested users.

    What takes the extra time is the redraw of the control. When you call SetCtrlVal we ALWAYS redraw the control. We wouldn't want to build in functionality to check if the value was the same because that would add additional time to the SetCtrlVal in every case. If you want to do it outside of the loop you can as you have done above. You have a few options. First, keep a previous value variable for the controls that you can use to determine whether to set the control value. I.E.
    int oldVal = 0;
    int newVal = 0;
    if(newVal!=oldVal) {
    SetCtrlVal(..., newVal);
    oldVal = newVal;
    Also, if you set the value of a control through SetCtrlAttribute instead, there is no built in redraw of the control (which is what takes all the time). Using SetCtrlAttribute
    to set the value is very fast, but remember there isn't a built in redraw on the screen to display the new number.
    Best Regards,
    Chris Matthews
    Measurement Studio Support Manager

  • The speed of my iMac slow only 2 weeks old why?

    the speed of my iMac slow only 2 weeks old why?

    In addition to abrody's questions, have you downloaded non-Apple software that may be automatically loading, and perhaps not Lion-compatible? Go to System Preferences, users, and look at login items under your user ID.  This is easy to check ... do a safe boot by holding the shift key down when you boot. The boot itself may take longer than normal, but once the boot finishes, if the performance is what you'd consider normal, look to your login items. Also, while looking at System Preferences, look at any programs noted at the bottom of the window.

  • Execution Speed of Aurora JRE

    We are experiencing some problems with the execution speed of the aurora JRE. The documentation states that the Aurora JRE is compiled to native code and should run 2 - 10 times faster than a normal JRE. We are atempting to do some memory sorts using the Array class which is taking 10 times longer in the Oracle instance than on a client.
    Is this a known performance bottleneck, are there any "tweaks" available?
    Thanks
    Julian

    Hello Ravi,
    Does your statement about core java classes being natively compiled also apply to the JVM in OAS / iAS?
    I remember reading in a white paper that, in iAS, java code would be translated into C code for native execution. Does this apply to user code or only core java classes ?
    (by the way, It seems impossible to download OAS 4.0.8.2 from OTN, maybe it would help if it was divided into several smaller files...)
    Thanks, Remi DEH
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Oracle Support Analyst (Ravi):
    In the current JServer release, Java code you load to the server is
    interpreted. The underlying core classes upon which your code relies (java.lang.*) are natively compiled. Until the native compiler is available for user programs,
    the net speed benefit of native compilation to your executing program is dependent upon how much native code is traversed, as opposed to interpreted code. The
    more Java code from core classes and Oracle-provided class libraries you use, the more benefit you will see from native compilation.
    In 8.1.7 i.e 8i Release 3 we support natively compiled code for the user programs.
    <HR></BLOCKQUOTE>
    null

  • Copying speed of files has slowed down significantly

    copying speed of files has slowed down significantly
    and if initiate two different copy processes then it slows so much that 1 GB data takes time like it was 15GB

    Again, it depends on file types. Sometimes Apple files are not single files but packages of many smaller files, for example the iPhoto Library. Right-click in Finder, if there's "Show Package Contents", then it is technically not a single file.
    For simple file transfer from one machine to another per USB drive, it can save some time to zip the data before and after transfer to and from the USB drive.

  • I have new mac the speed download is very slow

    i have new mac the speed download is very slow please let me know.

    The warranty entitles you to complimentary phone support for the first 90 days of ownership.
    If you bought the product in the U.S. directly from Apple (not from a reseller), you also have 14 days from the date of delivery in which to exchange or return it for a refund. In other countries, the return policy may be different. If you bought from a reseller, its return policy applies.

  • Execution Speed help

    Hi there!
    I hope someone can help me about my (probably noobish) question:
    I have 2 Oracle environments, both not maintained by me and if I execute the following querry:
    select * from DATA_TBL where rownum < 11;
    It takes about 8 seconds on the one and less than 1 second on the other environment.
    As there is everything selected via '*' and the where clause does not include data colums it can't be about indexes or analysed information or?
    On both environments I also get the same explain_plan (only thing I have the rights to do):
    PLAN_TABLE_OUTPUT
    | Id | Operation | Name | Rows | Bytes | Cost |
    | 0 | SELECT STATEMENT | | | | |
    |* 1 | COUNT STOPKEY | | | | |
    | 2 | TABLE ACCESS FULL | DATA_TBL | | | |
    Predicate Information (identified by operation id):
    1 - filter(ROWNUM<11)
    Note: rule based optimization
    15 rows selected.
    I would be happy if someone could tell me about possible reasons for the difference in execution speed, or what to tell the DBA's..
    Thanks in advance!
    Jan

    >
    select * from DATA_TBL where rownum < 11;
    It takes about 8 seconds on the one and less than 1 second on the other environment.
    >
    SQL>  create table t1 as select 'AAAAAAAAAAAAA' as word from dual connect by level<=1e7;
    Table created.
    SQL> create table t2 as select 'AAAAAAAAAAAAA' as word from dual connect by level<=1e7;
    Table created.
    SQL> delete from t1 where rownum<5000000;
    SQL> commit;
    Commit complete.
    SQL> set timing on
    SQL> select * from t1 where rownum<10;
    WORD
    AAAAAAAAAAAAA
    AAAAAAAAAAAAA
    AAAAAAAAAAAAA
    AAAAAAAAAAAAA
    AAAAAAAAAAAAA
    AAAAAAAAAAAAA
    AAAAAAAAAAAAA
    AAAAAAAAAAAAA
    AAAAAAAAAAAAA
    9 rows selected.
    Elapsed: 00:00:02.44
    SQL> select * from t2 where rownum<10;
    WORD
    AAAAAAAAAAAAA
    AAAAAAAAAAAAA
    AAAAAAAAAAAAA
    AAAAAAAAAAAAA
    AAAAAAAAAAAAA
    AAAAAAAAAAAAA
    AAAAAAAAAAAAA
    AAAAAAAAAAAAA
    AAAAAAAAAAAAA
    9 rows selected.
    Elapsed: 00:00:00.48Kind regards
    Uwe
    http://uhesse.wordpress.com

  • Re speeding up track then slowing down

    Hi..
    I have a battery toy ... which I have recorded the sound from. This goes on to an animation and I need the track to distort and speed up and then slow down as for winding down... any help please would be very welcome.
    Also it goes underwater from time to time.....
    Anita

    Go to applications > utilities > activity monitor
    Sort them by cpu usage and if there are programs that are taking up a massive amount of cpu, then you should quit those apps. If you are watching videos on the internet (especially youtube videos) that will take up a lot of cpu.

Maybe you are looking for