開発の舞台裏 – いかにパフォーマンスを向上させるか
SOLIDWORKS 研究開発 (R&D) チームは常にお客様からのフィードバックを求めています。大変有難いことに、弊社には熱心なユーザー様が大勢いらっしゃいます。弊社ソフトウェアに関する良い点も悪い点も、多くの皆様からご意見をいただければ幸いです。
パフォーマンスが最優先事項であるという声をよく耳にします。新しい機能や生産性向上ツールは魅力的で、多くのユーザー様に大きな違いをもたらす可能性はありますが、弊社ソフトウェアを使用してくださるお客様にとっては、単純に、速度がいかに重要であるかも理解しています。その意味でも、弊社は、常に、パフォーマンスの向上を目指していることは事実です。
ここでは、R&D の舞台裏を皆さんに覗いていただきたいと思っています。私達がどのような取り組みをしてきたのか、紹介させて下さい。
新しいアプローチ
ファイルを「開く」「保存する」というタスクは、SOLIDWORKS を使用するすべての皆様の日常的なワークフローの中核的な作業になります。従って、弊社が、常に、この「開く」「保存する」のパフォーマンスに重点を置いてきたことは言うまでもありません。これは、可能な限り最適化しなければならない明らかな目標です。類似したカテゴリとして、たとえば、異なるファイル形式のインポートとエクスポート、シミュレーションスタディの実行、SOLIDWORKS Visualize レンダリングなどは、多くの負荷がかかるコマンドであり、これらの点にも重きを置き、常に可能な限り高速に実行されるように努力してきました。また、最新の GPU を最大限に活用するまったく新しいグラフィックスレンダリングエンジンを搭載するなど、グラフィックスパフォーマンスも大幅に向上しています。
ただし、SOLIDWORKS には、ファイルを開いたり保存したり、大量の計算をこなしたりするだけではない、それ以上の機能があることをも事実です。1 日に何十回、何百回も使用するコマンドは数多くあり、これらのコマンドが完璧に最適化されていないと、「1つ1つは致命傷ではいのに、いずれは死に至る」に言い換えられるように、致命的なフラストレーションとして爆発してしまう可能性があります。これが、私達が、小さな問題であってもそれを洗い出し、すべてのユーザー様の SOLIDWORKSを使った日常的なエクスペリエンスに目に見える変化をもたらす、そうであるべきチームを設立した理由です。アプローチは次のとおりです。
- ワークフローの構築
平均的な SOLIDWORKS セッションで見られ、予想される典型的なコマンドをキャプチャするワークフローを構築しました。各ワークフローは異なるテーマに焦点を当てています。ワークフローのリストは増え続けており、それぞれ約 20 ステップで構成されています。ここではすべてのワークフローやその詳細な手順は示しませんが、いくつかのワークフローの概要を以下に示します。
・アセンブリ構造の編集: トップレベルとサブアセンブリの両方の編集でコンポーネントを挿入、抑制、削除する
・合致: トップレベルとサブアセンブリの両方の編集でメイトを挿入、編集、削除、抑制する
・モデリングとスケッチ: 大規模なアセンブリを取り扱う状況で、フィーチャ、参照ジオメトリ、スケッチなどを作成および編集する
・マルチウィンドウ操作: 複数の大きなモデルを同時に開いているときにウィンドウを切り替える際の操作
・選択、UI 操作、およびその他ツール: グラフィックス領域と フィーチャーマネージャーの両方で、選択、マウスの動き、強調表示、フィーチャーマネージャー フィルターなど、機能に関するさまざまな「マイクロ」操作
・図面の作成と編集: 新しい図面ビュー、注釈、図面シートを作成する
- 実際のお客様モデルを使用する
テストが可能な限り現実的であることが重要です。ダミーモデルによるテストでは不十分です。そのため、パフォーマンスと品質のテストのためにサンプルモデルを提供してくださったお客様から、実製造データを共有いただき使用しています。これらの大規模なモデルは、セメント工場、石油・ガス施設、包装機械、複雑な医療機器など、さまざまな業界と用途をカバーしています。
- パフォーマンス測定
パフォーマンスと品質テストのために一部のお客様から共有していただいたいくつかの大規模なアセンブリを使用して、各ワークフローを実行しました。初期テストは、一般的な SOLIDWORKS 設定を使用して、モデルサイズに適した仕様の PC で手動で実行し、各ステップの完了時間を記録しました。
- ホットスポットを見つけてターゲットを設定する
各ステップのパフォーマンスを評価し、一般的な SOLIDWORKS ユーザー様の立場に立って、特定のタスクでどのステップがうまく機能し、どのステップが遅くなる可能性があるかを分析しました。これには、パフォーマンスが遅い理由に関する SOLIDWORKS R&D の知識を「忘れる」ことが要求されました。純粋にユーザー様の視点からアプローチしたかったからです。ここから、各ステップで一般的なユーザー様が良好なパフォーマンスとみなすだろうものを表す目標をいくつか設定しました。これらの目標はしばしば厳しいものであり、すべてを達成できないかもしれないことはわかっていましたが、控えめな改善で妥協するのではなく、限界を押し広げて創造的な解決策を考え出すよう挑戦したいと考えました。
- パフォーマンスを修正して検証する
改善が必要な各項目は適切な開発チームに割り当てられ、目標パフォーマンスを念頭に置きながら作業に取り掛かりました。修正には簡単なものもあれば難しいものもあり、小さなサブセット項目は、アーキテクチャレベルの変更としてフラグ付けされ、将来のリリースの計画に組み込む必要もありました。
修正が届くと、品質保証 (QA) チームがそれを検証し、私達は、懸命な努力の成果を目でみて理解できるようになり始めました。すべての目標を達成することはできませんでしたが、結果は素晴らしいもであると実感できました。
- サンプルモデルを拡張し、テストを自動化
手動テストでは、ここまでしかできません。パフォーマンスワークフローを自動化し、さらに多くの顧客データを追加しました。専用のテストマシンは、自律的にテストを実行し、結果を社内の 3DEXPERIENCE プラットフォームのダッシュボードに直接出力しました。SOLIDWORKS のさまざまなビルド間の傾向を監視することで、次のサービスパックがリリースされる前に注意が必要なパフォーマンスについてすばやくフラグ付けできます。
初期結果
ズームアウトして全体像を見て、これらすべての段階的な変更を行った後の状況を確認させて下さい。良いニュースとして、大きな改善がいくつも行われたことです。以下のビデオは、2024 年の進捗状況スナップショットです。私は、一般的なユーザー様がアセンブリを構築して図面を作成するときに行う可能性のある長いワークフローを録画しました。 SOLIDWORKS 2023 と SOLIDWORKS 2024 を並べて比較すると、SOLIDWORKS 2024 がどれだけ高速化しているかがわかります。38 分のワークフローの約 30% 削減を可能にしています。
サプライヤーやパートナーから大規模なマルチボディモデルを含むモデルを受け取り、それを参照として使用したり、より大きな親アセンブリのコンポーネントとして使用したりする必要がある場合も多々あります。これらのインポートされたモデルには数千のボディが含まれることがあります。新しいワークフローに移行することで解決できるパフォーマンスがあることもご確認いただければ幸いです。
不要なジオメトリを非表示にしたり削除したりするなど、マルチボディパーツの編集の速度に関する懸念を耳にすることもありました。これに対処するために、そのタスクに使用する必要のある一般的な操作をキャプチャするワークフローを構築し、現在のバージョン (当時は SOLIDWORKS 2024 SP2) でパフォーマンスをテストしました。テストしたパーツには 5,000 を超えるボディがありました。下の表に示すように、問題のあるステップを赤い点でマークし、目標時間を設定して作業に取り掛かりました。表の 2025 SP1 列は、現在の状況を示しています。大幅な改善も見られますが、一部のステップでは、さらなる成果が期待されていることもわかります。それらは、黄色でマークしたステップであり、次に私達が注力すべき点なのです。
さて、次は何でしょう?
私たちは止まることはありません。パフォーマンス向上についてやるべきことの範囲を引き続き拡大し、ユーザー様がソフトウェアをどのように操作していて、パフォーマンスのボトルネックがどこにあるのかをより正確に把握し、反映していきます。私達は、とても良いスタートを切ることができました。このアクションに長期的に取り組んでいきます!
SOLIDWORKS のパフォーマンスについて意見を共有したいお客様は、SOLIDWORKS ユーザー フォーラムにアクセスして他のSOLIDWORKS ユーザー様やサポートスタッフと交流してみませんか。トップ 10 リストにアイデアを提出することもできます。
注)SOLIDWORKS ユーザーフォーラムにアクセスするためには、3DEXPERIENCE ID が必要です(登録無料)。未登録のお客様は、こちらから登録をお願いいたします。
SOLIDWORKS 2025 の新機能を確認したお客様は、このブログもご覧ください。