3 Replies Latest reply on Jan 8, 2015 3:16 AM by Josh Killalea

    Order of magnitude performance improvement

    Luca Frondoni

      Hello everyone

      I am trying to improve SolidWorks performance, mainly for decreasing loading times of relatively big assembly.

      Let's take project A. Loading it up from local storage SSD on a very recent top of the line machine, it takes 13 minutes. Which is arguably quite a long time.

      I am unable to provide the total size of the assembly, but the assembly file is 78MB. The assembly has a lot of relatively small parts which get loaded into different assemblies, which are loaded by the main assembly Project A.

      Is it possible to decrease by at least an order of magnitude the loading times, ideally down to less than 60 sec? If yes, how?


      For your information we are not using SpeedPack.

      Detailed spec of the machine:

      Intel E5-1650 v2

      32GB RAM

      Quadro 2000



      Do not hesitate to ask me any further questions about configuration / SolidWorks model.


      Your help is much appreciated

        • Re: Order of magnitude performance improvement
          Brian Titus

          Load components lightweight?  Large Assembly mode?

          Both of these can help to decrease load times.  But disk speed is disk speed.  SSD is absolutely faster than using a standard HDD.  We've noticed significant speed/loading performance increases by using SSD drives.

          • Re: Order of magnitude performance improvement
            Kelvin Lamport

            Make sure the Verification on rebuild option is disabled.

            Make sure the Control Panel > Power Options is set to High Performance.

            Run the SolidWorks Rx > Diagnostics tool to see what it reports.

            • Re: Order of magnitude performance improvement
              Josh Killalea

              the last project i was working on the main assembly file is 129,796Kb, so i feel you pain. it originally took about 45mins to open on average, but if we were having a "heavy network traffic day that could be up to or over an hour. here is a couple of things that i had to do to get the opening times down to sub 15 mins.


              1) turn off the visibility of ALL sketches. i know when you open in large assembly mode it does this by default, but it is still MUCH faster to open any assembly if all the sketches in that assembly are turned off. this includes all sketches in sub assemblies and parts. ALL SKETCHES.


              2) create some simplified configurations in your GA. you will almost never want to actually see ALL of that information in one hit. create a few configurations that allow you to still see the information you need to from the time you open it and all the other information is still there if you really need or want to see it. remember to save the file in it's "smallest" (least detailed) configuration in case you forget to select the configuration you need when opening it. it will stil open quickly then and you can switch the configurations later in our case there was 3 main areas of a plant that we were working in and on occasion that meant running a pipe from one side of the plant to the other. so i initially split the model into 3 bits (3 configurations) and then saved it as the smallest configuration. then added configs as required


              3) get rid of non-native data. i know importing data is nice, and it is nice to have all that detail, but if you don't 100% need it, get rid of it! this is something i am still trying to get through to the guys here, but the simple fact is if you have a native file it will ALWAYS open faster than a non-native file. so create some simple files that represent the thing you want to see and has all the right dimensions in the right places and ditch the imports.


              4) simplify your model as much as possible. i know this sounds kind of stupid and like double the work, but if you can get away with having something represented by a simple block or cone or cylinder, do it! don't have a massively complex part/assembly on display if all you need is the outer limits of it. create a simpler single part to represent that insanely complex assembly. it's all you need and you can still have the complex assembly there but suppressed for when you really do need the detail. again, this is something i am trying to get implemented here, but it works.


              5) also have a look in your settings for anything performance related like shadows, lighting effect and levels of detail. there is quite a bit in there to help large assemblies load faster. if you are always working in large assemblies it is better to set your settings to suit and adjust them on the odd occasion you need to. we have done this on all the machines here and it made an instant improvement alone.


              6) get rid of anything that is doubled up. this is a big one! i had noticed that some of our sub-assemblies had the same part in them (like bridges or tanks) twice. this meant in our main assembly it had the exact same part/assembly in the exact same place meaning it was trying to display the 2 of them at the same time. i know this sounds like it shouldn't be a problem, but holy cow does it make a difference to the performance of SW! make sure you have NO double ups! no matter how big or small.


              7) learn to work around it. the simple fact of the matter is that if you are going to be working with so much data there is little to nothing you can do to avoid lengthy load times. it will take time to load thousands of parts and assemblies no matter how you cut it. even if you have a computer that can open each part in .001 of a second when you multiply that by thousands or tens of thousands of parts,  it will take some time. so learn to work around it. my work morning starts with me getting to my computer first thing before i do ANYTHING else and start my model opening. while it is opening i do all the little things like put my lunch in the fridge, get changed into work clothes, make a coffee, say hello to some people and have a brief chat, that kind of thing. then by the time you get back to your desk your model is open or much closer to it. i have found that if you don't reboot solidworks after about 6hrs working on huge models like that then it will crash, so at lunch time i shut it down and restart it all while i am making lunch/eating. that way you don't really notice the time it takes to open these files.


              with all these things i have managed to get the assembly opening in about 13 minutes on average, which given it has over 12,000 individually referenced files with over 45,000 instances in it, i am happy with that. and given it could take up to an hour to open previously i am VERY happy with that.


              hope this helps some.