
Doubled pxp file size and slow opening speed when having user-written panel is open

Hello everyone!
I have about a hundred 3-dimensional raw data and they’re 510 MB in total.
And there’s a user-made analysis panel that deals with those data (It has listboxes, buttons, image display subpanel with image reconstructed by those hundreds of raw data).
But when I save the experiment in pxp format, the size of the pxp file becomes ~1GB, which is the double of all the raw data waves in the experiment, (I checked every folder and waves using ‘size’ tab in data browser, and there is no hidden waves).
Also, saving or opening this double-sized pxp file with panel takes over 1 minute, while reasonable-sized (510MB) pxp file with panel closed takes few seconds.
And then when I close the analysis panel and then save in pxp format, then it’s 510 MB and opens fast.
(Also, when I save in uxp format with panels opened, the uxp fils is just 510 MB, reasonably, and opens fast.)
What could be the possible reason for this? Can the panel hold those raw data as temporary when saved as pxp file, to make it bigger with hidden size?
Of course I can just use uxp, but it’s more easy to manage pxp files and I’m just curious if there’s way to solve this problem still using pxp format.
Sorry I can’t post the pxp file as the analysis panel is written by someone else, not me, so I don’t have any right for that. It would be great help for me if you can share your knowledge and guesses.
I’m using Igor Pro 8 on M1 apple sillicon mac (Sequoia 15.4.1). (For my colleague who’s using windows, minimizing the panels, no need to kill those, seem to work to make it faster.)
Any comments based on your experience would help me.
Thank you!
Have you also looked into the Packages folder where panels and such usually store their meta-data? I can imagine that the open panels make backup copies, which seems like your data has suddenly doubled. What happens when you just load the data or close the panels? There was also a script to calculate folder sizes somewhere, but I can't find it now...
May 12, 2025 at 10:31 pm - Permalink
Hi chozo, thank you but yes, I checked total wave size by entering below commands so that the Data browser checks all the waves sizes. It's not panels making backup waves, that's why I guess it's something behind the user GUI that happens when saving Igor.
Modifybrowser expandall
Modifybrowser collapseall
May 13, 2025 at 08:17 am - Permalink
Then it is likely that the analysis package is saving some temporary data. Maybe you search for BeforeExperimentSaveHook() in the code to see if something comes up. But usually temporary data should be visible in some folder. The long startup time could also mean that rebuilding the panels triggers some lengthy calculation somewhere. Usually I would not think that opening even an 1 GB file takes very long. I am afraid that it is difficult to identify the cause without having the panel code (and possibly an example file) at hand.
May 14, 2025 at 07:00 am - Permalink
@jurumy7 How would you feel about sending a copy of the experiment to WaveMetrics support? We never make anything public from support without asking first. If you want us to delete the file after we examine it, we can do that, also.
May 14, 2025 at 11:19 am - Permalink
Thank you @chozo and @johnweeks! I'll try sending this pxp file with all procedures adopted as you suggested!
May 16, 2025 at 10:41 am - Permalink
jurumy7 did send us a copy of his experiment file, and I tracked down the missing Gigabyte. The experiment file has two wave reference waves each of which has references to over 356000 waves, each of 241 points. The referenced waves are free waves, so most methods for figuring out how much data is represented by the waves present in an experiment file didn't find those waves. It is also a fact that an unpacked experiment file doesn't save free waves, but packed and HDF5 experiment files do. The slow save and open of the file is directly attributable to the overhead of dealing with those 2*356000 waves.
I thought y'all would be interested 😊🤯
I have to say that I'm pretty impressed that Igor survived that assault!
May 16, 2025 at 04:39 pm - Permalink
Thanks to John's advice, I could find the reason for the free waves. They were for 'wave reference multithread', but the original coder forgot to kill the free-waves-referencing wave after multithreading as written in the Igor Pro manual, which led to the situation john wrote above. After adding few lines to properly remove that wave, files now open/save instantly! Thank you so much, @johnweeks!
May 22, 2025 at 05:37 pm - Permalink
Glad I could help!
May 23, 2025 at 09:31 am - Permalink
If those waves aren't needed later, it would perhaps simplify the code to make the big wave reference wave a free wave. Then it would be automatically destroyed when the function is finished executing.
May 23, 2025 at 09:33 am - Permalink