Unzipped Plugins - still possible?

Hi Folks,

I know this was discussed a year or so back, but the forum search is not providing useful results.

Along with the need to relaunch the IDE every hour or so comes the delay that those of us with large Plugin collections witness. The previous discussion was regarding unzipping the .xojo_plugin files and renaming the resulting folders as .xojo_plugin. We discussed how this change really improved load times of the IDE and I even duplicated it. However, in 19r1.1 and 19.2.1, it seems that the uncompressed versions are being ignored. Did this option go away in the newer IDE?

You have to create a new folder with the .xojo_plugin extension and drag the uncompressed folder in IIRC…

The folder must have right extension and inside right structure.
Check the ones included within the Xojo app to compare.

Here’s what I did as a test -

Fresh Install of 19r2.1 on Linux
Copied the full MBS set to Plugins/MBS/
Unzipped all of the .xojo_plugin files which left the folders
Removed the .xojo_plugin compressed files
Added .xojo_plugin to the folder names
Launched Xojo
Only the default Xojo plugins were picked up.

The default macOS unzip flattens by one level (which Xojo won’t load). You may want to double check that the Linux unzip didn’t do the same thing.

Once somebody gets this to work with a large plugin set (MBS complete and perhaps others) could you post how much relative time it saves off the IDE startup? Might be a good trade-off for the Xojo version I use most often.

It didn’t. I end up with the folder named the same as the plugin, the “Build Resources” folder, and then the platform folders. For example, here’s the MBS Tools plugin extracted:

I’ve gone through 18 iterations in testing this and I cannot get the unzipped plugins to be recognized by the 19r1.1 or 19r2.1 IDEs. Anyone else continue to chase this?

Works fine here:

The folder must be named “.xojo_plugin” containing the content of the zip archive.
So I unpacked my plugin zip and stuffed it in a folder with the name of the plugin.

You need one more level above that.

Hmmm, I had:

/opt/xojo2019r2.1/Plugins/MBS Xojo Tools Plugin.xojo_plugin

but I need:

/opt/xojo2019r2.1/Plugins/MBS Xojo Tools Plugin.xojo_plugin/MBS Xojo Tools/ ...

I now see what’s going on. I run more tests.

Now that the folder structure layout is sorted, I’ve tested on macOS and Linux systems and the results are very impressive on a non-SSD system, but less so on an SSD/NVMe system. The round numbers are a 50% improvement at load and a 70% improvement during the initial “Compiling plugins” phases. This is a big difference on a spinning disk since it reduces 102 seconds to 52 seconds on launch and 208 seconds to 59 seconds for the compiling plugins phase. On the NVMe-based Linux system, that was less noticeable since the load time only drops from 68 seconds to 35 seconds and the initial compile time drops from 110 to 38 seconds.

I’ve noticed some improvement on the application link times, but the linking is so variable - even for the same project, that I don’t have hard numbers.

This is with all MBS and Einhugur plugins and 3 of my private plugins installed.

Well, maybe it may be worth to deliver plugins unpacked?
Or an unpack utility script?

I was actually writing a script, but this from plugin authors would make it so easy. Since disk space no no longer the issue that it was back in the 90’s, and the plugins are pretty fixed once installed, this could be a very good idea. I know that given the option, I’d download the uncompressed plugins - at least until the IDE is stable enough on Linux and Windows to alleviate having to relaunch it 4-5 times a day.

Please write one.

I just put it on the todo list to test this myself and if needed change my build process to build myself an unpacked copy to test here.

I don’t compress my plugins to let them open faster. Their zipped but not compressed.

For me the times are:

51 seconds with compressed zipped Plugins
47 seconds with uncompressed zipped plugins
33 seconds with unpacked plugins

And as far as I see the speed difference for zip vs. unzip is not very big. The time needed between having Xojo plugin archive and no archive is a significant difference.
So it may be good to write a script in future, so people interested in a faster speed could unpack the plugins themselves.
Or Xojo Inc. could spend some time on getting the loading faster. Seems like the function to work on folder item for temp file take s a long time to find an unique file name!

Here’s my attempt at a quick shell script to unzip, rename etc… works for me so far.

[code]#!/bin/zsh

unplug.sh

be sure to chmod +x unplug.sh

called like:

./unplug.sh [path to xojo]/plugins/*

while [ -n “$1” ]
do

FILENAME=$1
if [[ ! -d “${FILENAME}” ]]
then
echo “Processing ${FILENAME}”
mv “${FILENAME}” “${FILENAME}.zip”
mkdir “${FILENAME}”
yes | unzip -d “${FILENAME}” “${FILENAME}.zip”
rm “${FILENAME}.zip” #comment this line to not delete orignial files
fi
shift
done
[/code]

You might want to run it on a copy of your plugins folder just in case

You consolidated it into a single loop, but we went the same route otherwise.