2016-11-08 3 views
8

歴史的に、Unity3Dのタブー構成の1つは、ループの各反復で数バイトのデータが無駄に消費されるため、c#foreachブロックの使用でした。'foreach'は 'modern' unity(> = 5.4.x)でまだまだ悪いですか?

現代版の場合でもそれが不思議ですか?

私のグーグルでのテストは、決定的ではない結果が出てきており、低レベルのベンチマークに没頭するのではなく、他の人の知識をここに浸していきたいと思います。 :-)

これを避ける必要があるかどうかを判断するには、最近誰かが突き刺したのですか?foreach Unity3Dにはありますか?

+0

これは私のお気に入りの引用符の1つを思い出させます:(カニンガムの法則)「インターネット上で正しい答えを得る最良の方法は、質問をすることではなく、間違った答えを投稿することです。 ;-) – Tass

+0

@tass真...ああ私は先に進んで、foreachを使うのはまったく問題ないと言っています。それを持って、インターネット。 – slumtrimpet

答えて

10

いいえ は、もはや「現代的な」統一では悪くはないが、修正はまだ完全にはリリースされていない。

それは最初にあなたがhereから得ることができます月上旬に特別ビルドユニティパッチ5.3.5p8、上に固定しました。これは修正を受けるために必要な特別版です。

UnityはコンパイラをMono 4.4 on Unity 5.5 betaにアップグレードしましたが、まだリリースされていません。 foreach問題を修正しました。このバージョンが来月にリリースされると、foreachのメモリ割り当てが過去のものになります。テストの目的ではまだdownloadですが、ベータ版のゲームはリリースしません。

スクリプト:C#コンパイラをMono 4.4にアップグレードします。新しいコンパイラはまだ がC#4と.Net 3.5をターゲットにしていますが、より良いパフォーマンスと多くの のバグ修正が提供されています。

修正されましたが、修正は依然としてベータモードです。

+1

ちょっとしたニックピック - 最初のビットを "いいえ、それはもはや問題ではなく、[...]"または "はい、次のバージョンが完全にリリースされてもそれ以外の場合は、Q/Aのペアのように見える "foreach 'はまだ"現代 "の統一で悪いですか?はい。あなたの答えの精神ではないようです。最後の文に基づいて、あなたはあなたの答えを「はい」と繰り返します。 – Serlite

+0

情報を気に入っています。私は悲しいかなか頭を振り、int iのためにそれらを愚かに書いておきます。私は slumtrimpet

+0

あなたは5.5リリースまで数ヶ月間それをやらなければなりませんが、将来のリリースで修正があることをよく知っていることができます。 – Programmer

関連する問題