Search the Community
Showing results for tags 'v3.3.12.0 exe speed issue'.
-
Hello, I am using Autoit v3.3.12.0 and my project is a Markov Chain calculation which involve millions calculations and several external program (one of them is Excel). My program logic is like this: for $i=1 to 400 for $j=1 to 420 <do my calculation> next i,j then launch external program for further process I timed that the calculation is around 80 seconds, then the whole calculation eed 156 days!!!! In order to speed up the process,I compiled the program to exe (x64) as prog.exe and I copy prog.exe t prog1.exe, prog2.exe... prog8.exe. Each with an ini file to control the range of $i e.g. prog1.exe $i=1 to 50 prog2.exe $i=51 to 100 ... prog8.exe $i=351 to 400 And then I run prog1 to prog8 at the same time. However, with 8 prog execute at the same time, the calculation time increase from 80 seconds to 300 seconds!!! I know that run so many exe will sacrifice some performance, however, I didn't experience any "slow/jerky" in using Windows while the 8 prog running, this mena that my PC is not working full power on those 8 prog (I already use processsetpriority to set all prog* to 5). My problem is: How to increase the performance of my prog ? Or, how to make use of all my PC's power on those program ? I am running Windows 10 home edition with i7 quad core CPU, 16 GB ram. Thanks. Also, I use traysettooltip to keep track the progress (which $i $j is working on ) and I find that even I run prog1~prog8 and the same time, I find that prog1 can maintain the speed (80 seconds) and prog8 is the slowest. I have the feeling (just feeling, no concrete evidence) that even I compile 8 prog*.exe, they use the same set of resource of my PC instead of different one. Therefore, prog* run slower and slower (prog2 slower than prog1 and prog3 slower than prog2) and other application (e.g. FireFox) seems not affected by those 8 prog(s) (I can even play Flash based online game without any performance degrade!!!). What I expected is: prog1 ~ prog8 will become slower than 80 seconds but all 8 prog will perform more or less the same, not one slower than the previous one. -------------------------------------------------------------------- (problem solved) Thanks for everyone's help, eventually I find out the root issue of my problem. I am using nested for loop in my program for $i=1 to 400 for $j=1 to 420 in the middle of my program. I need to convert the product of i and j to string e.g. 2x2=4 will convert to 000004, 3x8=24 will convert to 000024 the conversion make use a temp variable $tmpVar, however, other part of my program also use this variable!!!!!! (Strange that program just become slow, and no error generated.) Apart from the above reason, another cause tomy slow problem is memory issue. Autoit will "eat" certain amount of memory each loop. I make use the _reducememory introduce in this forum to re-gain memory, but the _reducememory only work in 32 bits version, and I compiled the program to x64 mode which _reducememory not work!!! Therefore, I am forced to compile to 32 bits. Any 64 bits version of _reducememory ? Regds LAM Chi-fung