cherish00 发表于 2014-9-16 15:39

探究solidworks运行速度慢的原因和解决办法

随着SolidWorks功能的越来越强大,以及windows的不断发展,SolidWorks客户普遍反应SolidWorks软件运行速度慢。主要是三个方面:
1、   SolidWorks是基于windows开发的三维设计软件,windows越做越大,则SolidWorks必须跟其步伐。这是客观的问题所在。
2、   客户工程师的建模方式的不合理导致SolidWorks运行速度慢,这是可以去解决的。
3、   由于客户电脑上安装了一些加密软件或者翻译软件,由于与则SolidWorks不兼容,导致则SolidWorks运行速度慢。

由于第一个原因我们无法去改变,所以我们不去探讨。第三个原因处理比较简单,主要停用相关的不兼容软件即可。我们在这里也不做详细的介绍。我们主要围绕第二点去探讨,如何提高则SolidWorks的运行速度。
1、原因分析:
通过分析客户的装配体和相关工程图,主要原因如下:
1.装配体顶层零件过多,用户习惯在装配体的顶层插入很多单个零件(例如各种螺钉和垫圈),从而在打开编辑装配体的时候,SolidWorks需要处理大量数据,影响运行速度;
2. 装配体及其子装配体中包含许多配合错误,耗费系统额外的时间和资源;
3. 装配体中的零件有建模错误;
4. 装配体中有许多空的、无效的零部件阵列;
5. 装配体包含的零件中包含过多细节,例如,装配体中包含一个圈数很多的弹簧、零件的铭牌上的采用文字切除拉伸,这些都是非常耗费系统资源的细节;
6. 工程图的模板较大,模板中包含了图形数据,单个模板容量约2MB,额外增加了工程图文件的容量;
7. 部分电脑配置需要改善;

2、解决方法:
无论零件多少,在装配体环境下都有一些最佳的操作方法可循,这些方法可以帮助用户提高文件的打开速度和编辑速度。
1. 细分子装配体。在装配体中,应该使用子装配体代替多个零件,尤其在装配体的顶层,建议只保留子装配体,螺钉、垫圈、铆钉等各种标准件装配到各个子装配中去;
2. 向SmarTeam检入装配体前先检查文件,重建模型、排除错误;
3. 删除装配体中的空阵列;
4. 尽量合理利用零部件阵列;
5. 尽量减少各种零件中的细节特征,例如,铭牌的文字显示不采用拉伸切除的方法,而用草图文字得到,弹簧采用示意画法,减少弹簧的圈数;
6. 减小图模板的大小,将模板中的图片去掉,改用线条形式的Logo,可减少工程图的占用空间和系统资源;
7. 在编辑大装配体工程图的时候,先隐藏其他视图,只保留工作视图,需要的时候才显示其他视图;
8. 在只需要打印工程图的时候,可先用只看形式打开,可快速查看图纸并打印;
9. 硬件配置推荐(推荐使用图形工作站)
3、小常识:
什么是系统资源
   谈到Windows时,有一个必说的话题--系统资源(System Resource)但系统资源到底是什么,有人说是指CPU,有人说是指硬盘空间,有人说是指内存……当应用程序在Windows中运行时,Windows必须实时"跟踪"该应用程序的运行,并保留与之相关的许多信息,如按钮、光标、菜单的位置和位图、窗口的状况等,这些信息由Windows保留在一种叫堆的内存块中,堆的英文为Heap。简单地说,堆是采用特殊机制管理的内存块。由Windows的一个系统内核User.exe管理的堆叫作User资源堆(User Resource Heap),由另一个系统内核Gdi.exe管理的堆叫作GDI资源堆(Graphical Device Interface Resource Heap,简称GDI Resource Heap),User资源堆和GDI资源堆合称为系统资源堆(System Resource Heap),习惯上就把它们叫作系统资源(System Resource)
系统资源的辩析
    不要将系统资源和CPU资源(CPU使用率)相混淆,硬盘、光驱、软猫的数据处理、显卡的3D图像处理、声卡的3D音效处理占用的都是CPU时间(即消耗CPU资源),而不是系统资源,这些硬件设备的先进与否与占用系统资源的多少根本没有任何关系,可至今许多人还是将它们混为一谈。按习惯,谈到硬件的资源占用一般是指其CPU资源的占用,而软件的资源占用既包括CPU资源占用又包括系统资源(堆)占用,但计算机用户关心的一般是后者,因此谈到软件的资源占用时一般是指其对系统资源的占用。
这也解释了,无论客户的硬件配置如何,与软件运行占用的系统资源是无关的。SolidWorks无故退出和CPU占用率居高不下,不在于客户的内存大小,CPU频率高低等硬件配置
系统资源的作用
    系统资源是用来跟踪应用程序运行而不是用来运行应用程序的,就像公路上车多车少,并不是车稍微多点就没有办法开车了。因此可以肯定地说,影响计算机系统性能的是计算机系统其他的因素,而绝不会是可用系统资源的大小。当用户计算机系统性能明显降低时,应该从别的方面去查找原因,而不要马上怀疑到系统资源身上。从硬件方面来看,内存太小导致系统不得不频繁使用虚拟内存是影响系统性能的主要原因之一;从软件方面来看,因为Windows是一个多任务的操作系统,大家都习惯同时运行多个应用程序而不管当时是否实际需要。而编写和调试这些应用程序的程序员一般只考虑其在单任务环境下的运行,而没有过多的精力从多任务环境来考虑和调试,因此许多应用程序间往往不能很好地协同工作,同时运行多个这样的应用程序会因它们彼此之间发生冲突而导致系统性能下降。当然,Windows多任务管理机制的不完善也是造成这个问题的主要原因之一
进程优先级
    每个进程(正在运行的程序)都有相应的优先级,优先级决定它何时运行和接收多少CPU时间。最终的优先级共32级,是从0到31的数值,称为基本优先级别(base priority level)。系统按照不同的优先级调度进程的运行。0-15级是普通优先级,进程的优先级可以动态变化,高优先级进程优先运行,只有高优先级进程不运行时,才调度低优先级进程运行。优先级相同的进程按照时间片轮流运行。16-31级是实时优先级,实时优先级与普通优先级的最大区别在于相同优先级进程的运行不按照时间片轮转,而是先运行的进程就先控制CPU,如果它不主动放弃控制,同级或低优先级的进程就无法运行
优先级提升策略
    每个进程(正在运行的程序)都有相应的优先级,优先级决定它何时运行和接收多少CPU时间。最终的优先级共32级,是从0到31的数值,称为基本优先级别(base priority level)。系统按照不同的优先级调度进程的运行。0-15级是普通优先级,进程的优先级可以动态变化,高优先级进程优先运行,只有高优先级进程不运行时,才调度低优先级进程运行。优先级相同的进程按照时间片轮流运行。16-31级是实时优先级,实时优先级与普通优先级的最大区别在于相同优先级进程的运行不按照时间片轮转,而是先运行的进程就先控制CPU,如果它不主动放弃控制,同级或低优先级的进程就无法运行。像QQ之类要长时间占用进程的可以调制低于标准的优先级。
改变优先级提升性能
    改变程序优先级可以提高性能。这里优先级是指电脑怎样决定哪个程序应该首先得到CPU的时间,和怎样分配CPU时间给每一个程序,优先级一般分6级(在后台它更复杂分31级)。优先级由线程优先权(Thread Priority)和优先类型(Priority Class)决定。优先类型有几种基本的优先程度设定(尽管在后台它更复杂),一般有:实时、高、标准、和空闲等。其中实时的程序会优先于其它任何程序占用CPU的时间,大多数情况下只有操作系统本身的程序才有这个特权。其它的设置只是操作系统用来决定程序占用CPU时间的简单排列。其中线程是CPU基本执行单位,CPU在一个瞬时只能处理一个线程,线程优先可以理解为CPU优先处理优先权高的线程,再处理下一级优先权线程。当一个线程在执行中被别的线程优先占有CPU时,操作系统利用CPU的硬件设施保持它的现场;当这个线程重新得到调度时,该现场被恢复。了解优先权大致原理,我们可以从两种途径来设置优先权。

4、剑走偏锋
改变SW优先级
按Ctrl+Alt+Del,调用任务管理器。切换到“进程”,找到用户想要优先的运行的程序,点击右键,选择“设置优先级”,选择用户希望的优先类型
永久改变SW优先级
用记事本新建一个文件,加入以下类似的语句:
Echo off
Start /
把换成用户希望的优先类型(Real time、High、Normal、或Idle),换成用户希望的改变优先级的程序的路径和程序主文件。例如:
Echo off
Start /high c:\windows\notepad.exe
最后将文件后缀.TXT改变为.BAT并保存。以后可以运行这个BAT文件启动程序,让程序按照用户设定的优先级运行。
注意Real time的程序会优先于其它任何程序,一般只用于操作系统的运行文件。另外提高程序的优先级同时会带来稳定性的降低。

5、结束语
    SolidWorks软件是个易学易用的三维设计软件,在使用的过程中我们可以先分析一下我们的模型再去相应的进行合理的建模,这样就能提高了我们的效率。
推荐阅读:pla秃鹰
页: [1]
查看完整版本: 探究solidworks运行速度慢的原因和解决办法