サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
パリ五輪
mitoshiropj.blogspot.com
2013年8月8日木曜日 C#勉強会草稿(3) UnityがC#を選んだ訳 ちょっと話はズレますが、何故UnityがC#(というかmono)を選択したのかを考えてみます。 というのも、UnityはC#の特徴(特にC#2.0以降の新機能)を活用していないように見えるからです。 ジェネリックコレクションを使わないUnity Unityでは、ジェネリックコレクションを使っている気配がありません。 例えばParticleEmitterのParticlesフィールド。 ドキュメントには「パーティクルのコピーを渡す、またはパーティクルを更新する」とありますので、IEnumeratable<Particle>型が適切なのですが、Particle[]型と配列で受け渡しを行っています。 また、デリゲートとイベントを使っている気配もありません。 そうなってくると、そもそも「何故C#を選んだのか」と
C#ではメモリ管理はガベージコレクション(GC)ですので、deleteする必要が無く気楽です。 が、GCはメモリ回収時に全動作を止める(所謂Stop the world)事が良く知られています。 デスクトップ環境向けのプログラムを書く分にはあまり気にしなくても良いところなのですが、スマートフォン向けのプログラムの場合、ちょっと問題です。 (実はサーバー環境でも問題なのですが) スマートフォンは性能が上がってきているとはいえ、デスクトップに比べるとまだまだ非力です。 ガベージコレクタがメモリを回収、つまり使われていない領域を開放する処理は案外重たいため、パフォーマンス上悪影響を与える事が多々あります。 パフォーマンス上の目安 あくまで個人的な目安ですが、GC間隔が1秒を超えていればチューニングの必要は無いと考えています。 逆に言えば1秒を切っている場合、無駄なオブジェクト生成が潜んでいると見
このページを最初にブックマークしてみませんか?
『mitoshiropj.blogspot.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く