MarcPhillips Posted May 31, 2010 Share Posted May 31, 2010 Hello forum, In our installer program we use FileInstall to copy files into the target directory. Under XP everything works fine. There are several thousands of files that need to be installed, individual file sizes ranging from several bytes up to 10MB. It takes approx. 10 minutes to complete the installation, which is acceptable. Under Windows 7 also no problems, however, the same installation takes 45 minutes. From the progress bar it is obvious that installing files take much longer than under XP. We have tried disabling compression but it makes no big difference. Currently, we are using AutoIt v3.3.0.0. but with v3.3.6.1 it is all the same. Does anyone know what the reason for the slow performance might be? Any help is highly appreciated. Thanks in advance, Marc Link to comment Share on other sites More sharing options...
BrettF Posted May 31, 2010 Share Posted May 31, 2010 (edited) Hi there, I used this to create a file 10MB large (exactly): ;Create 10MB exactly $file = @ScriptDir & "\FileOut.txt" $open = FileOpen ($file, 18) For $i = 1 to 10485760 FileWrite ($open, "1") Next FileClose ($open) And this to install the file as a test. If FileExists (@ScriptDir & "\file.txt") Then FileDelete (@ScriptDir & "\file.txt") $timer = TimerInit () FileInstall ("C:\Users\francisb\Documents\autoit\tetete\FileOut.txt", @ScriptDir & "\file.txt") $diff = TimerDiff ($timer) MsgBox (0, "", $diff) Understandably I got different results compiled and uncompiled. Uncompiled around 20ms (When this function is used from a non-compiled script, a copy operation is performed instead) Complied around 140ms (default options) Complied around 137ms (lowest UPX) Complied around 140ms (highest UPX) Complied around 140ms (no UPX) All within reasonable bounds to say that the UPX doesn't have a noticeable impact on speed. 140ms is also quite reasonable for a 10MB file. Possibly it could be other things causing the script to hang. Have you tried doing some extensive logging and testing of your program? Cheers, Brett Edited May 31, 2010 by BrettF Vist my blog!UDFs: Opens The Default Mail Client | _LoginBox | Convert Reg to AU3 | BASS.au3 (BASS.dll) (Includes various BASS Libraries) | MultiLang.au3 (Multi-Language GUIs!)Example Scripts: Computer Info Telnet Server | "Secure" HTTP Server (Based on Manadar's Server)Software: AAMP- Advanced AutoIt Media Player | WorldCam | AYTU - Youtube Uploader Tutorials: Learning to Script with AutoIt V3Projects (Hardware + AutoIt): ArduinoUseful Links: AutoIt 1-2-3 | The AutoIt Downloads Section: | SciTE4AutoIt3 Full Version! Link to comment Share on other sites More sharing options...
MarcPhillips Posted May 31, 2010 Author Share Posted May 31, 2010 Hi Brett, Thanks for quick response. As a matter of fact, we are doing extensive logging of almost everything that happens in the program. As I have written before, the program itself works fine. Our test team has been testing it for many months and the program is being used in the field under XP. It is just slow on Windows 7. In your test case, you have only created one file and have copied it with the result that I would have expected as well. But our intaller is 800MB large and it contains several thousand files. In our efforts to isolate the problem, we have gradually removed all potential suspects from the workflow. What remains is FileInstall calls. Our PC hardware is not the newest, but not too old. For instance, I have an 2GHz AMD dual core system. Most test systems are in the simmilar category or better. Regards, Marc Link to comment Share on other sites More sharing options...
Developers Jos Posted May 31, 2010 Developers Share Posted May 31, 2010 @Marc, Do you know if its related to the size or just the number of files. Could you test with a single larger file? What I have done in the past is to RAR all files into a single selfextracting EXE instead of using FIleInstall for all individual files. @BrettF, UPX is not involved in the Fileinstall() Compression. It is an internal compression algorithm. Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
MarcPhillips Posted June 1, 2010 Author Share Posted June 1, 2010 @Jos, It's my impression that the size actually doesn't matter. Possibly, it's the size of the archive that makes FileInstall slow. We have already considered the idea of packing the files into an RAR/7Zip and then selfextracting them into the target directory. I was only wondering whether there is a way to improve FileInstall before we go this way. :-) Cheers, Marc Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now