Jump to content

It takes couple minutes to open class private data .clt in small project


Recommended Posts

Hi guys,

 

I've got some problem with my project. It's rather small one (3 classes, about 200 vi)

 

I've started to work on one of the classes a 2 months and now, to open ctl file for that class, I need about 3 minutes (after double click on class.ctl I'm seeing white window that populates with controls after 3 minutes). The other classes opens with no delay at all.

I was tagging this project by saving it to my drive every week. Now I've spotted that about a month ago, I've changed this class a bit, adding couple extra clusters and from that on, I'm seeing this massive hang of LabVIEW before showing me class private data.

After deleting this cluster (up to the point when I've deleted every data from this class) and saving it, time to open didn't change.

How to spot which vi is causing this opening time? How is it working?

 

If I would have to build this class from the month ago base, how should I do it so that LabVIEW will not complain about the today's-class that he is using?

 

 

Any response and ideas appreciated

Mass compile didn't help

Edited by karolek
Link to comment

Recently I was having massive slowdowns opening VIs, including classed, but the culprit turned out to be an old link to an SCC Perforce Server that was not valid.  Not sure if that is your problem or not, but if you have source control enabled in labview, you could check that.

Link to comment

Hi

Thanks for response, I'm not using any SCC, I've also tried renaming the class before, and it didn't change anything. I've tried couple LabVIEWs (13 and 14) on different laptops, in everywhere I have same problem.

I've copied just this class and saved it in another location, deleted everything from it's cluster, deleted every vi, rename and save copy to yet another location. Saving this almost empty class took more time than it should. It also didn't change anything. Opening empty private data of this empty class is still taking more than 3 minutes. Interesting, isn't it?

 

I guess I can even send it to you, since there is no code there... And after writing it I saw class file size of 19 MB. How is it possible since it's empty? How to get rid of it?

Link to comment

I guess I can even send it to you, since there is no code there... And after writing it I saw class file size of 19 MB. How is it possible since it's empty? How to get rid of it?

Yeah that's a major red flag.  The class file (and libraries in general) are just XML so I'd so open it in a text editor and see what it shows.

Link to comment

Hacking in progress...

 

<?xml version='1.0' encoding='UTF-8'?>
<LVClass LVVersion="14008000">
    <Property Name="NI.Lib.Icon" Type="Bin">&!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!*!!    ... a lot of strange stuff...     !!!!!</Property>
    <Property Name="NI.Lib.SourceVersion" Type="Int">335577088</Property>
    <Property Name="NI.Lib.Version" Type="Str">1.0.0.0</Property>
    <Property Name="NI.LV.All.SourceOnly" Type="Bool">false</Property>
    <Property Name="NI.LVClass.ClassNameVisibleInProbe" Type="Bool">true</Property>
    <Property Name="NI.LVClass.DataValRefToSelfLimitedLibFlag" Type="Bool">true</Property>
    <Property Name="NI.LVClass.FlattenedPrivateDataCTL" Type="Bin">&!#!!!!!!!)!"1!&!!!-!     ...a lot of strange stuff...      Q!!!!!</Property>
    <Property Name="NI.LVClass.Geneology" Type="Xml"><String>

 

<Name></Name>

 

<Val>!!!! -> This one is the problem

 

</String>

</Property>
    <Property Name="NI.LVClass.IsTransferClass" Type="Bool">false</Property>
    <Property Name="NI.LVClass.ParentClassLinkInfo" Type="Bin">&!#!!!!!!!)!"1!&!!!-!%!!!@`    ... a lot of strange stuff ...       RB=X-!!!!!</Property>
    <Property Name="NI.SortType" Type="Int">3</Property>
    <Property Name="NI_IconEditor" Type="Str">49 51 48 48 56 48 53 49 13 0 0 0 0 1 23 21 76 111 97 100 ... lot of numbers 0-128 ...

</Property>
    <Item Name="Copy of Test.ctl" Type="Class Private Data" URL="Copy of Test.ctl">
        <Property Name="NI.LibItem.Scope" Type="Int">2</Property>
    </Item>
</LVClass>

 

Next to <Val> is the biggest line of characters I've seen in my life.

 

Thank you. What can I do with it?

Link to comment

Thank you. What can I do with it?

Either erase it and see if it breaks things, or you can try to make a new blank class, having the same data type as yours, then copy the Val from the fresh one to your new one, replacing it.  No idea what the line actually does.

  • Like 1
Link to comment

YES! O God it feels good.

 

After just deleting this line, I could open the project, but after opening this class, it blinked and disappeared at once. It was opening normally on the second try.

So, as you said, I made a new class, copied over all controls, save it and copied <Val> line to the old class.

 

It's running perfectly now.

 

Thank you.

 

Lesson learned:

This class is an actor that has been saving an image data to process it. This image was 2d, 24-bit color array, that, I guess has been saved as a default value for this cluster.

Instead of this image I will now be using data value reference without copying it to class.

Edited by karolek
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.