- NSIS Discussion
- big install.exe - slow process
Archive: big install.exe - slow process
probee
21st December 2004 08:29 UTC
big install.exe - slow process
Hi all,
I have a problem. My install.exe is 560MB. It's very slow, when I run it, about 1 min till the splash screen appear. Until that, there's no feedback to the user. It's very annoying. Is there any solution?
TIA
PS: sorry for mí poor english...
Takhir
21st December 2004 09:49 UTC
NSIS Help, 4.9.1.7 ReserveFile
Use forum Search for ReserveFile free samples :) http://forums.winamp.com/search.php
probee
21st December 2004 10:35 UTC
Originally posted by Takhir
NSIS Help, 4.9.1.7 ReserveFile
Use forum Search for ReserveFile free samples :) http://forums.winamp.com/search.php
Thannks, but there's lot of topic, and I have no time, sorry for this... What is the right metod?
ReserveFile /r "install\*" ?
And where? In the init, or...
Sorry again for the lame question...
Takhir
21st December 2004 10:55 UTC
Thread you need http://forums.winamp.com/showthread....rveFile+splash
Add ReserveFile instruction on the top of script (not in function or section). Reserve splash image, AdvSplash.dll and sound file (if any) - only files you want to extract first (not *).
bluenet
21st December 2004 11:00 UTC
ReserveFile use for file or plugins use in .onInit Function, not all files.
probee
21st December 2004 11:22 UTC
Thanks for the answers, but it doesn't work.
I put this in the very beginning of the script:
ReserveFile "${NSISDIR}\Plugins\advsplash.dll"
ReserveFile "install\pix\setup.bmp"
If I start the install.exe, there's no splash screen, and after the one minute "silent" initialization (decompression?), there's no splash screen anymore... gone.
Still, it's a _very_ slow process, if I make a banner (for example, "please wait..."), it will be good, I think, but...
With the IS or MSI, it's a fast process. The install.exe is 1-2 Mb, the data is in cabinet files. With NSIS, it's only one file, the istall.exe, it's 560 MB (the uncompressed size is 1,1 GB). And it is a very, very slow process... :(
RobGrant
21st December 2004 11:29 UTC
Mate, try putting absolute pathnames for the ReserveFiles. You specify the path they are on your system, not the target install path, obviously.
Takhir
21st December 2004 11:40 UTC
I guess something is wrong in your script if image not appears at all. This was tested and used many times.
ReserveFile "${NSISDIR}\Plugins\advsplash.dll"
ReserveFile "nsis.bmp"
Afrow UK
21st December 2004 11:50 UTC
Try using SetOutPath $PLUGINSDIR before using ReserveFile.
Then with the splash dll call, $PLUGINSDIR\splash
-Stu
probee
21st December 2004 11:55 UTC
I've try this:
ReserveFile "${NSISDIR}\Plugins\Banner.dll"
Function .onInit
Banner::show /NOUNLOAD "Please wait..."
Banner::destroy
FunctionEnd
Not working...
Takhir
21st December 2004 11:56 UTC
Name "AdvSplash test"
OutFile "AdvSplash Test.exe"
ReserveFile "${NSISDIR}\Plugins\advsplash.dll"
ReserveFile "nsis.bmp"
Function .onInit
InitPluginsDir
SetOutPath $PLUGINSDIR
File "nsis.bmp"
advsplash::show 1000 600 400 -1 "$PLUGINSDIR\nsis"
Pop $0 ; $0 has '1' if the user closed the splash screen early,
Delete "$PLUGINSDIR\nsis.bmp"
FunctionEnd
Section
SectionEnd
probee
21st December 2004 12:04 UTC
Thanks, but let's forget this splash... The advsplash is working, but just afterthe 1 minute process. Until that, the user don't know, what's goin' on, and will start again and again the install.exe. That's my problem. Click install.exe -> wait one minute -> advsplash, install start. I will try the banner.dll with the reservefile, maybe it's working anyhow. But still, the process is slow. This one minute silent something is annoying...
Afrow UK
21st December 2004 12:11 UTC
Are you using BGGradient by any chance?
-Stu
probee
21st December 2004 12:16 UTC
Originally posted by Afrow UK
Are you using BGGradient by any chance?
-Stu
No. I don't now, what's BGGradient, but yes, I read that post. I'm through all the post from the last 45 days in the forum now...
Afrow UK
21st December 2004 12:20 UTC
You should change this:
Function .onInit
Banner::show /NOUNLOAD "Please wait..."
Banner::destroy
FunctionEnd
Stick Banner::destroy in the Pre function for your Welcome page.
-Stu
probee
21st December 2004 12:57 UTC
thanks, but my core problem is still exist:
start the install exe -> one minute hourglass -> starting the .onInit, with the banner, advsplash, bgimage and all the initialization stuff, with the welcome page. So, I want a banner or anything right after I (or the user) click on the install.exe... Not one minute after, because it doesn't make sense...
Takhir
21st December 2004 14:16 UTC
How this happens on my comp: installer first makes integrity check (banner with % progress), after this image banner appears, and I can hear file copy disk activity (I used File with 200 MB dir in .onInit, change or comment Sleep in the script), finally installer dialog replaces banner.
NSIS 2.03 and Win2K Server.
probee
21st December 2004 15:19 UTC
Thank you, Takhir, I've tried it - doesn't work...
start install.exe -> one minute hourglass -> your image appearing, then the welcome page. It's equivalent with the advsplash.dll.
Takhir
21st December 2004 16:35 UTC
"Please wait while setup is loading. Verifying installer xx%" - banner should be visible when installer checks package integrity. This may take one minute or less for 1 GB package (image banner in my test appears even faster if compression was used, after 1-3 seconds of "Verifying" banner or even immediatelly after installer launch). And this is a problem - why "verifying" banner is not visible on your system? Are you using stable NSIS version? Did you tested it with 2.02?
probee
21st December 2004 17:00 UTC
Originally posted by Takhir
"Please wait while setup is loading. Verifying installer xx%" - banner should be visible when installer checks package integrity. This may take one minute or less for 1 GB package (image banner in my test appears even faster if compression was used, after 1-3 seconds of "Verifying" banner or even immediatelly after installer launch). And this is a problem - why "verifying" banner is not visible on your system? Are you using stable NSIS version? Did you tested it with 2.02?
Yes, this is the main problem. This verifying not the CRC check? Because I set it off (CRCCheck off). And there's something with the "solid compression" too, as I learnt in the posts of the forum, but I don't understand, what is it (it seems, bzip2 and lzma is the solid, but I'm using the zlib, 'cause the bzip2 and the lzma have very slow compression (bzip2 about 40min, lzma 1-2 hour), and the install.exe with the bzip2 compression
doesn't start... (hourglass, 3 minutes winchester work, then nothing, must kill the process.
I'm using the 2.03 version, the OS is XP SP2 (maybe the SP2 is the guilty...)
probee
21st December 2004 17:28 UTC
Okay, I've tested it: the "Please wait... verifying" IS the CRC check. It's another annoying process after the one minute hourglass... I'll give it up...
iostriz
22nd December 2004 13:59 UTC
I've just created 550MB install file and everything works as expected, that is: "Verifying installer %xx".
Here is attached nsi script that does that with no probs.
Another problem is that I cannot put REALLY big file into setup (e.g. 3.5 GB) because of:
"failed creating mmap of "c:\really big file.avi"
Takhir
23rd December 2004 07:21 UTC
int (2 GB) limitations in mmap.c/h looks not reasonable, CreateFileMapping (and other calls and structs) supports big files. NSIS developers can clean code and move size limit to DWORD (4 GB) easy. This may also require compression code check out, but this is not a problem too. I guess.