Jump to content
Legolash2o

FYP: Threading Research Results

Recommended Posts

As part of my final year project (if approved). I will be focusing a lot on threading. Currently Win Tookit uses background workers with apparently are bad for performance.

 

I've been experimenting and here are some results compare the current method used by Win Toolkit and a new method.

 

Parallel will also use more CPU cores and I will let you choose in Options how many you want to use. By default it would be ProcressorCount - 1, so if you have a quad core with hyperthreading (8), it will use 7 by default.

 

Test 1: The test was to get the MD5 values for 1300+ MSU files.

--------------------------------------------

Not Updating GUI:-

Current: 19270ms (19 seconds)

New: 5499ms (5.4 seconds)

350% speed increase!

 

When updating the GUI:-

Current: 38417ms (38.4 seconds)

New: 9576ms (9.5 seconds)

401% speed increase!  :P

--------------------------------------------

Test 2: The test was to get the MD5 values for 55652 files.

 

Not Updating GUI:-

Current: 466165ms (466 seconds / 7.7 minutes)

New: 4943ms (4.9 seconds / 0.082 minutes)

 

9430% speed increase!

 

When updating the GUI:- 

Current: 500754ms (501 seconds / 8.34 minutes) (testing....)

New: 13334ms (13.3 seconds / 0.22 minutes)

 

3755% speed increase!

 

-----------------------------------------------------------

The results so far look very promising!

 

Imagine integrating EVERY gadget, EVERY wallpaper, EVERY custom files, EVERYTHING except Updates + Drivers being integrated at the same time as everything else.

 

I'm still continuing my research... :)

Share this post


Link to post
Share on other sites

Vaoouuww!!

Record figures :dribble: Awesome numbers!!

 

Congratulation @Lego :type:

Share this post


Link to post
Share on other sites

Since RunOnce decided to screw up (partially my fault). I decided to put all my knowledge including the new multithreading knowledge I have into it, So far it's a lot less code and much simpler for me to read and so far the results have been excellent. For example:

 

I had to wait about 10-13 seconds for it detects items to install (usually 2000+ drivers) before I see the main install screen. Now it does the same thing in 411ms 366ms so no complaints here. It now uses all cores to get the information.  :P

Share this post


Link to post
Share on other sites

Good job! :)

 

I think its the true way, its goes "modern".

I agree with that WTK should use all possibles.

 

 

 changing Win Toolkit from .NET 3.5 to .NET 4.0

 

Excellent idea! :)

Share this post


Link to post
Share on other sites

Well with the RunOnce installer I've managed to keep it on .NET 3.5 but yet use a backported dll which lets me use the parallel and linq from .NET 4.0. But for WinToolkit I will use the latest .NET framework the university have.

Share this post


Link to post
Share on other sites

Can people please test the latest test build. The RunOnce installer has had an upgrade in regard to threading and updates are installed separately. Also when you select/load a DVD in WIM Manager a sample install.ini is created in the sources folder to be used with the RunOnce. :)

 

Thanks. 

 

 

Yay, i think 3.5 will die in future, that's a reason for example.

I wish it was dead already or wish that Windows 7 came with .NET 4 instead of 3.5 :(

Share this post


Link to post
Share on other sites

I will try it sometime tomorrow

 

Can people please test the latest test build. The RunOnce installer has had an upgrade in regard to threading and updates are installed separately. Also when you select/load a DVD in WIM Manager a sample install.ini is created in the sources folder to be used with the RunOnce. :)

 

Thanks. 

 

Share this post


Link to post
Share on other sites

 

Yay, i think 3.5 will die in future, that's a reason for example.

I wish it was dead already or wish that Windows 7 came with .NET 4 instead of 3.5 :(

 

But, for folks that want or need to run Win Toolkit using XP as a host, assuming that is still possible, I would suggest sticking with 4.0 and not using 4.5, since AFAIK 4.0 can be installed on XP and 4.5 cannot.

Cheers and Regards

Share this post


Link to post
Share on other sites

True enough and no argument from me about that.  After all, that's kind of what Win Toolkit is all about - helping folks make an install source for Win7 or 8.x in the easiest, most efficient way possible to help them move to the newer OS.  But since being able to do that from XP was a feature of Win Toolkit, then I say no sense removing a feature until it is absolutely necessary.  I think it would be sad to require you to already be on Win7 in order to make a Win7 install source.  Let's not be like MS. :)  But then that's just my 2 cents.

 

Cheers and Regards

Share this post


Link to post
Share on other sites

.NET 4.0 is fine, has everything I need such as better threading, LINQ and Lambda expressions which I love.

Just those 3 features alone will make a HUGE performance increase in Win Toolkit!

Share this post


Link to post
Share on other sites

Wow!  All of this talk on multi-threading, it makes my spidey senses tingle.

 

I wonder what WinToolKit could do with an 8 core processor?  hmmmm ... the possibilities are endless .... :prop:

Share this post


Link to post
Share on other sites

Well previously Win Toolkit only used about 10-20% of my CPU my (8 cores) but with my experiments, it shoots up to about 80-90%. The HDD is really the limiting factor, SSD helps a lot but the results from a RAM Drive were mind blowing :P

Share this post


Link to post
Share on other sites

 

Wonder, how it would perform on Dual E5-2620 with 24 threads total... :P

 

What's your spec? :-O

 

 

I dont own that system...basically its a server which was used for running databases but became obsolete when everything went to the "cloud" ... ;)

I would have to sell my both kidneys to build such a beast for my home desktop use, so I have a regular I7-3770K clocked to 5Ghz at home with 8 threads only :(

Edited by Etz

Share this post


Link to post
Share on other sites
 I would suggest sticking with 4.0 and not using 4.5, since AFAIK 4.0 can be installed on XP and 4.5 cannot.

 

Yeah, i think the same, its too early for 4.5

But, I think also that XP is dead and the users should think about an upgrade..

 

Question: Whats about Mono, run it with?

https://en.wikipedia.org/wiki/Mono_%28software%29

Edited by BrokenZer0

Share this post


Link to post
Share on other sites

 

Yeah, i think the same, its too early for 4.5

But, I think also that XP is dead and the users should think about an upgrade..

 

Question: Whats about Mono, run it with?

https://en.wikipedia.org/wiki/Mono_%28software%29

 

 

Mono doesn`t help you, as Dism cannot be run on Linux or Mac OS X anyway ;)

And I dont think Latest ADK for Windows 8.1 would install on XP to get Dism working on it either...

 

XP is pretty much obsolete platform anyway as it support ends completely in two weeks and Hardware which runs XP can run Win 7 from hardware standpoint.

Edited by Etz

Share this post


Link to post
Share on other sites

And I dont think Latest ADK for Windows 8.1 would install on XP to get Dism working on it either...

AFAIK, You don't need to install the entire ADK in order to install DISM, at least it used to be that way, and there are tools available to download just DISM so you don't even have to download the entire ADK either.  I admit that I don't know if the 8.1 DISM will install on XP, but as long as Win Toolkit on XP can be used to build a Win7 install source, then I think it is still worthwhile.

I'm really not trying to be an XP champion, I haven't run it myself in years, and I don't know for sure if the latest version of Win Toolkit even runs on XP for that matter. ( I'm also not sure if Win Toolkit runs on or can build an install source for Vista, but since it is part of the NT6 family I think it probably could be made so it does.  Yes I know it's market share is low so that's not as important, but still.)  But XP still has a large enough market share to not be ignored. So if we want to give those folks a way to use their existing install as a platform on which to build a Win7 or possibly even a Win8.x install source, and leaving code in to allow running on XP does not hurt the performance on other platforms, then why not?  I'm trying to be a Win Toolkit champion!

 

I would really like to see the usage of Win Toolkit continue to grow. It really irks me to see new users asking questions about how to use RT7Lite, when that app hasn't been updated in several years, but it is a recognized name and it is still used.  I want Win Toolkit to be the go to tool for Win 7 and Win 8.x like nLite became for XP.  And speaking of nLite, nuhi is expected to release his version of a tool to work on Win7 and Win8.x by sometime next month, and if nLite was any indication, then that might well become the major "competition" to Win Toolkit. WinAIO Maker Professional by Josh Cell, and Onepiece's DX WinNT6.x True Integrator for Windows Vista x86/x64, Windows 7 x86/x64 and Windows 8/8.1 x86/x64 are two existing "competitors", among others.  I just figure the more versions of Windows that Win Toolkit can run on and the more versions it can make an install source for can only help it have a larger user base.  And wouldn't that benefit us all?

 

Cheers and Regards

Share this post


Link to post
Share on other sites

8.1 DISM doesn't work on XP. WinToolkit does run on XP with some small features disabled. I will be using .NET 4.0 so XP users can still use it.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now


×