Francois Aujard Posted March 3, 2023 Report Share Posted March 3, 2023 Hello everyone, I need help figuring out what is going on and what I am doing wrong. I have benches with windows 10 and labview 2017. No problems, the benches are working fine. I want to upgrade to labview 2021, and the surprise, the memory increases.... I isolated the vi that increases the memory (Instr_FGV_MesuresVrac.vi), but I don't understand why? Can you help me and explain why? I think it this part of the code : In my general code I initialize the vi at startup and then I have 3 loops that SET always the same measurements and one that GET. There is no addition of measurement channels. I have 2 tables of 30 measures. This code is use on other computer with windows 10 and Labview 2021 and no problem, but in some computer I have problem... Best regards PB Labview.zip Quote Link to comment
Gribo Posted March 3, 2023 Report Share Posted March 3, 2023 Can you use a single for loop for the Set function? a pair of parallel loops is always a suspect. Quote Link to comment
Francois Aujard Posted March 3, 2023 Author Report Share Posted March 3, 2023 @Gribo I don't have the same numbers of channels in the table "MESURES" (inputs channels) and "RETOUR CONSIGNE" (outputs channels). Why is suspect? This functional variable global is use in all the acquisition loops. it centralizes the measurements that come from different types of acquisitions. Example : - One loop ask diverter in Modbus and update the modbus channels - One loop ask ethernet mainboard and update the associates channels - One loop ask NI board etc... Quote Link to comment
hooovahh Posted March 3, 2023 Report Share Posted March 3, 2023 Those VIs are quite simple. If there is a memory leak in that simple of a VI then you need to open a support ticket with NI so it can be fixed in a patch. I see things I would change about the VIs, but nothing that should affect memory. Like the terminals should be on the root of the diagram for subVIs. (Also are you doing work for Magna? I used to work at a couple of their divisions) Quote Link to comment
Gribo Posted March 3, 2023 Report Share Posted March 3, 2023 The next question is what removes measurements from this array? Except the INIT command, there is nothing that reduces its size. Over time, with new measurement names, it will always increase in size. Quote Link to comment
Francois Aujard Posted March 3, 2023 Author Report Share Posted March 3, 2023 @hooovahh thank you for your reply. Yes it's a very simple VI, it's for that I don't understand. I do not have the problem when I make an *.exe.... it's strange... I don't understand your sentence "Like the terminals should be on the root of the diagram for subVIs"? The command "Value et noms IN" out of the IF structure? The string array does not need to be re-indexed with the element structure in place... It's an old VI. We asked a specialized company to develop our acquisition. There are a lot of things I would like to change... everything in fact and start again on a good basis. But I am running out of time... I'm not sure this FGV is a great idea. what is the best solution to combine several different acquisitions on different devices? That is the question ! Yes I work for Magna, how do you know? I make hydraulic bench for us. We have actually a cold and hot water generator and 3 endurances benches in construction ! What company do you work for? Quote Link to comment
Francois Aujard Posted March 3, 2023 Author Report Share Posted March 3, 2023 22 minutes ago, Gribo said: The next question is what removes measurements from this array? Except the INIT command, there is nothing that reduces its size. Over time, with new measurement names, it will always increase in size. Yes I an agree with you, but it is always the same measurements with the same names. I replace the value and I never add new value. I add new value only at the begenning. A new channel voicie, OK I update my table size, but after it's just replace. I already add table size to be sure it's not increase. And the size don't increase Quote Link to comment
LogMAN Posted March 3, 2023 Report Share Posted March 3, 2023 (edited) This appears to be a known issue in LabVIEW 2021 SP1. Quote LabVIEW 2021 SP1 causes an increase in the memory usage of some applications unnecessarily over time. Workaround: You can disable the performance optimization which caused the memory leak by adding "MemoryManger.UseMasterPointerPool = FALSE" to the LabVIEW INI file. LabVIEW 2021 SP1 f1 patch fixes the issue by disabling the performance optimization by default. https://www.ni.com/de-de/support/documentation/bugs/22/labview-2021-sp1-known-issues.html Edited March 3, 2023 by LogMAN 2 Quote Link to comment
hooovahh Posted March 3, 2023 Report Share Posted March 3, 2023 48 minutes ago, Francois Aujard said: I don't understand your sentence "Like the terminals should be on the root of the diagram for subVIs"? The command "Value et noms IN" out of the IF structure? The string array does not need to be re-indexed with the element structure in place... It's an old VI. We asked a specialized company to develop our acquisition. There are a lot of things I would like to change... everything in fact and start again on a good basis. But I am running out of time... I'm not sure this FGV is a great idea. SubVIs that are called as a function, and don't have the terminals change value after entering the VI, should have the terminals on the root of the diagram, not in sub diagram structures. This is because the compiler can't know if these terminals changed value from the last time they were used, and so it will read them again. If it is on the root of the diagram it reads it when it enters the VI and never needs to read it again. Same with indicators. These should be on the root of the diagram and I think the CLD takes off points if it isn't. https://forums.ni.com/t5/LabVIEW/Community-Nugget-Wired-Terminals-in-Subdiagrams-Clearing-up-the/td-p/2093252 But it is a very minor thing, I just mentioned it as something I'd change, but not something I would expect to affect memory. I worked at Magna Electronics, Magna E-Car, and I think Magna Powertrain was in there somewhere as divisions changed and were absorbed. Making validation and verification test systems for various automotive components like running boards, inverters, chargers, power control modules, and cameras. Good times until it wasn't. I knew this was related because it gave a loading warning that VIs were loaded from a new path, and the old path had Magna in it. 1 Quote Link to comment
HYH Posted March 4, 2023 Report Share Posted March 4, 2023 Hi NI is messing with the LabVIEW compiler. A memory leak would just be the latest. They started by eliminating the Hybrid Compiler, introduced in LabVIEW 2010 SP1, in LabVIEW 2019 to make development simpler but it appears to just progress in the wrong direction for every new LV version. They also started messing with the icons when beautifying project libraries in LabVIEW 2021. They haven't solved it yet, it seems. See NI Forum thread NI Library Icon problems in classes. Is there a development pattern here .. Regards 1 Quote Link to comment
HYH Posted March 4, 2023 Report Share Posted March 4, 2023 Hi again I forgot to make a conclusion how to avoid this problem. I avoid the problems related to odd LabVIEW development issues by sticking to LabVIEW 2018 SP1. No essential issues observed. For those not developing large VI's with a horrendous complexity then LabVIEW 2020 may be the sweet spot. The jury is still out whether LabVIEW 2023 Q1 is a good release. The previous had issues. One CEO simple stated he won't allow 2021 in his company. This is a serious problem with anything newer than LabVIEW 2018 SP1 : The two questions we have to ask when presented with a new LabVIEW release : - What did they improve ? - What did they screw up ? Regards 1 Quote Link to comment
Francois Aujard Posted March 6, 2023 Author Report Share Posted March 6, 2023 @HYH Thank you very much for your reply. I upgrade Labview 2017 to Labview 2021 next year, and your message does not reassure me One CEO simple stated he won't allow 2021 in his company. Who is it? Best regards Quote Link to comment
X___ Posted March 7, 2023 Report Share Posted March 7, 2023 On 3/4/2023 at 4:13 AM, HYH said: Hi again I forgot to make a conclusion how to avoid this problem. I avoid the problems related to odd LabVIEW development issues by sticking to LabVIEW 2018 SP1. No essential issues observed. For those not developing large VI's with a horrendous complexity then LabVIEW 2020 may be the sweet spot. The jury is still out whether LabVIEW 2023 Q1 is a good release. The previous had issues. One CEO simple stated he won't allow 2021 in his company. This is a serious problem with anything newer than LabVIEW 2018 SP1 : The two questions we have to ask when presented with a new LabVIEW release : - What did they improve ? - What did they screw up ? Regards I am not the one confused by this post, but I have to wonder: with a 17 MB BD and a code complexity of 18.1, maybe considering breaking stuff into subVIs and refactoring is in order? In my case, this tool was helpful in setting priorities: https://www.abcdef.biz/pi_free.htm Quote Link to comment
HYH Posted March 7, 2023 Report Share Posted March 7, 2023 20 hours ago, Francois Aujard said: @HYH Thank you very much for your reply. I upgrade Labview 2017 to Labview 2021 next year, and your message does not reassure me One CEO simple stated he won't allow 2021 in his company. Who is it? Best regards There is this interesting blog on Linkedin : https://in.linkedin.com/posts/jimkring_upgrading-to-new-labview-versions-is-for-activity-6972085040700686336-5gGw?trk=public_profile_like_view Lapsus : the person in question is CTO not CEO. Regards 1 Quote Link to comment
Francois Aujard Posted March 8, 2023 Author Report Share Posted March 8, 2023 On 3/3/2023 at 5:06 PM, hooovahh said: I worked at Magna Electronics, Magna E-Car, and I think Magna Powertrain was in there somewhere as divisions changed and were absorbed. Making validation and verification test systems for various automotive components like running boards, inverters, chargers, power control modules, and cameras. Good times until it wasn't. I knew this was related because it gave a loading warning that VIs were loaded from a new path, and the old path had Magna in it. @hooovahh your are "sherlock holmes" 🙂. I don't know exactlly what Magna represents. I just know our hydraulic benches (taps and cartridges testers) are in West Egypt. Magna is a middleman (reseller, intermediary, I don't sure of my word)... For my problem, the patch f1 of the Labview 2021 SP1 version seems solves it. I don't know why the informaticien don't installed me the last version 😒... I think he install a ghost of a hard drive. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.