2005年12月19日月曜日

SolidWorks API「実行速度の比較」

SolidWorks2006がリリースされて数ヶ月が経過しました。
皆さん新機能使いこなせるようになりましたか?

新機能も重要なのですが既存機能の処理能力を確認するために
SolidWorks2004、SolidWorks2005、SolidWorks2006
での実行速度を比較してみることにしました。

今回は以下の処理を行うマクロを作成しました。
1.Partsファイル新規作成
2.正方形スケッチを作成
3.押し出し
4.2~3を100回繰り返し

サンプルマクロはこちらから...

このサンプルでは出来るだけ描画に影響されないように作成しました。
具体的には
・スケッチ描画を行わない
・ビュー更新時の動画を行わない
が設定されています。

また、マクロ実行時にはSolidWorks上にファイル(図面・部品・アセンブリ)が開かれていない状態で行いました。
動作環境は以下の通りです。

【実行環境】
OSWindowsXP Pro SP2
CPUPentium4 2.4GHz
Memory1GByte

【SolidWorksのバージョン】
SolidWorks2004SP5.0
SolidWorks2005SP5.0
SolidWorks2006SP2.0


計測結果は以下のようになりました。

【100個の押し出し作成時間(秒)】

SolidWorks2004SolidWorks2005SolidWorks2006
1回目12.96913.67211.828
2回目 4.984 6.563 6.859
3回目 5.172 6.656 6.828
4回目 4.859 6.531 6.797
5回目 4.859 6.656 6.938
平均4.96856.60156.8555
注)1回目と2回目以降で作成時間がだいぶ異なりますので平均値は2回目以降で求めています。

SolidWorks2004との互換性で上記計測結果は
SelectByID および FeatureExtrusion を使用しましたが
SolidWorks2005とSolidWorks2006では
SelectByID2 および FeatureExtrusion2 が提供されています。

こちらを使用した計測結果は以下のようになりました。

【100個の押し出し作成時間(秒)】

SolidWorks2005SolidWorks2006
1回目13.34412.250
2回目 6.438 6.922
3回目 6.500 6.984
4回目 6.469 7.031
5回目 6.547 7.000
平均6.48856.98425

皆さんの環境ではどのようになりましたでしょうか?
マクロ実行前の予想では
SolidWorks2006>SolidWorks2005>SolidWorks2004
速い<------------------------------------------------> 遅い
と想定していましたが正反対の結果となりました。

また、SolidWorks2006でSelectByID2 および FeatureExtrusion2を使用した結果が
SelectByID および FeatureExtrusionを使用した結果より若干遅くなっているのも以外でした。
(計測誤差の範囲ですが・・・)