embed:tips1
差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
embed:tips1 [2023/01/29 09:30] – 作成 machiaworx | embed:tips1 [2024/05/04 11:20] (現在) – machiaworx | ||
---|---|---|---|
行 8: | 行 8: | ||
==== 状況 | ==== 状況 | ||
- | * 記述そのものでGCが発生。すなわち長い記述だとGCの量が多い | + | * 記述そのものでGCが発生。すなわち長い記述だとGCの量が多い。\\ 実際はコンパイル後のTACが格納されるためコメント行等は削除されるが、それでもデータはstring型で持っているため、長い記述は避けるほうがいい。 |
- | * 組み込み関数を呼ぶと300-400byte程度のGCが発生 | + | * 組み込み関数を呼ぶと300-400byte程度のGCが発生。delegate先の記述で変数の確保方法によってはGCが発生するとのこと。 |
- | * 組み込み関数分のヒープ確保はどうもキャッシュされるっぽく、 | + | * 組み込み関数分のヒープ確保はどうもキャッシュされるらしく、複数回呼んでもメモリ使用量はほぼ変化しないときがある |
- | * 複数回呼んでもメモリ使用量はほぼ変化しないときがある | + | |
==== 基本方針 ==== | ==== 基本方針 ==== | ||
- | * 記述は可能な限りコンパクトにまとめ、処理内容に参照しない記述がないようにする | + | * 記述は可能な限りコンパクトにまとめ、処理内容に未使用の変数等の記述がないようにする |
- | * 組み込み関数で数値や情報を取得する場合、内部の変数にキャッシュする | + | * 組み込み関数で数値やリスト・配列を取得する場合、ローカル変数にキャッシュする |
* 参照や計算はminiscript内部の変数を用いる(毎回組み込み関数で参照しない。これは標準で用意されている関数も含む) | * 参照や計算はminiscript内部の変数を用いる(毎回組み込み関数で参照しない。これは標準で用意されている関数も含む) | ||
- | コンパイラはなく、最適化がされないため、処理速度の向上やGC回避に対し、ソースコードの内容がモロに反映される模様。 | + | コンパイル処理については最適化がされないため、処理速度の向上やGC回避に対し、ソースコードの内容がモロに反映される模様。 |
==== UnityでのGCヒッチ回避策 ==== | ==== UnityでのGCヒッチ回避策 ==== |
embed/tips1.1674952237.txt.gz · 最終更新: 2023/01/29 09:30 by machiaworx