Tcl コンソールから Tcl コマンドを実行すると、コマンドはまず Tcl インタープリターのレベルで処理されます。構文エラーがない場合、コマンドはその後 C++ レベルで実行されます。コマンドで値が返される場合、C++ コードにより戻り値がソフトウェアのいくつかの層を介して Tcl インタープリターに送信されます。Tcl インタープリターと下位 C++ コードを行き来することが、実行時間に影響します。同じコマンド内でネスト処理を使用すると、ネストされたコマンドは C++ コードから直接呼び出され、コマンド全体が完了してから C++ コードから Tcl インタープリターに戻ります。たとえば、次のようなコードがあるとします。
set nets [get_nets -hier]
set pins [get_pins -of_objects $nets]
次のコードは、上記のコードよりも高速に処理されます。
set pins [get_pins -of_objects [get_nets -hier]]
これは、最初のコードでは中間 Tcl 変数 nets
が作成されるからです。
ただし、これらの変数の結果がコードのほかの部分で再利用される場合、中間 Tcl 変数を作成する方が有利なこともあります。