Unity初心者の俺が調べたことをメモするスレ (99レス)
上
下
前
次
1-
新
51
: 2023/09/15(金)21:52
ID:Fj2wueol(2/2)
AA×
[
240
|
320
|480|
600
|
100%
|
GIF
|
べ
|
レス栞
|
レス消
]
51: [sage] 2023/09/15(金) 21:52:15.68 ID:Fj2wueol 個人開発だよ 「直して〜」の「〜」は呼びかけじゃなくて以下ループとかそういうニュアンスのつもりだった 大量のデータを扱うコレクション(配列とかリストとかディクショナリ)の場合はどのコレクションを選択するかで処理速度は顕著な差が出るね 前に実験したことあるけど、1万個の所持アイテム用インスタンスを格納した?List<自作クラス>と?Dictionary<int,自作クラス>で一番最初に入手したアイテム(ListではIndex0、Dictionaryではint型キーを連番になるように制御して格納しているのでこれもキー0になる)を削除する処理を行った場合 ?Listだと500msぐらいかかる一方で、?Dictionaryだと0.1msで終わる これはListでは内部的には配列に特殊な処理を加えて自由に挿入・削除のできるコレクションに仕立てているから、削除関数であるRemoveAt()を実行すると削除した要素Indexの後ろに並んでいる要素たちを全部1つずつコピーして前に詰める作業が内部的に行われると全体の要素数が増えるにしたがってクッソ重くなる 一方でDictionaryは内部ではハッシュテーブルを利用していて、与えられたキーをハッシュに変換する作業がある代わりに基本的に要求された要素だけを参照しに行くから、全体の要素数が増えても処理速度に対して影響は出ない メモリ使用量についてはモバイル端末想定じゃなきゃまあ誤差だとは思うけど可能な限りは軽くしたいね http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/51
個人開発だよ 直してのは呼びかけじゃなくて以下ループとかそういうニュアンスのつもりだった 大量のデータを扱うコレクション配列とかリストとかディクショナリの場合はどのコレクションを選択するかで処理速度は顕著な差が出るね 前に実験したことあるけど万個の所持アイテム用インスタンスを格納した自作クラスと自作クラスで一番最初に入手したアイテムではでは型キーを連番になるように制御して格納しているのでこれもキーになるを削除する処理を行った場合 だとぐらいかかる一方でだとで終わる これはでは内部的には配列に特殊な処理を加えて自由に挿入削除のできるコレクションに仕立てているから削除関数であるを実行すると削除した要素の後ろに並んでいる要素たちを全部つずつコピーして前に詰める作業が内部的に行われると全体の要素数が増えるにしたがってクッソ重くなる 一方では内部ではハッシュテーブルを利用していて与えられたキーをハッシュに変換する作業がある代わりに基本的に要求された要素だけを参照しに行くから全体の要素数が増えても処理速度に対して影響は出ない メモリ使用量についてはモバイル端末想定じゃなきゃまあ誤差だとは思うけど可能な限りは軽くしたいね
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 48 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
ぬこの手
ぬこTOP
0.046s