トップ地図アプリMap > 地図アプリ性能実測記録

地図アプリ性能実測記録

注意事項

主に皇居と郊外の2地点について、描画時間を実測する。両地点とも画面当たりのタイル数はzoomによって異なり、 8~12タイルとなる。平均的には両地点とも10タイルとみなす。

2023.3.2 地名の描画を追加した

建物の描画は zoom 13、14以上である。この範囲の描画時間の増加は 10%程度である。

ズーム   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20   平均
郊 外 238 214 137 258 171 128  78 117  69  79  58  58  50  58  51  118ms
東 京 223 225 173 213 172  91  62 123 104  88  59  53  68  62  50  118ms

2023.3.1 建物の描画を追加した

建物の描画は zoom 13、14以上である。この範囲の描画時間の増加は 10%程度である。

ズーム   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20   平均
郊 外 238 214 137 258 171 128  78 117  69  79  58  58  50  58  51  118ms
東 京 223 225 173 213 172  91  62 123 104  88  59  53  68  62  50  118ms

2023.3.1 zoom 12以下の道路・鉄道描画を追加した

ズーム   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20   平均
郊 外 220 213 140 256 169 122  71 111  60  60  42  56  58  46  51  112ms
東 京 208 228 148 219 188 110  92  90  79  56  75  60  56  62  42  114ms

2023.2.28 行政境界線(boundary=administrative)を描画

全体の平均値は少し大きくなったが、問題にするほどではない。

ズーム   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  平均
郊 外 152 121  90 125  90  69  55  92  57  63  58  51  49  37  60  78ms
東 京 141 141  94 103 173  76  77 114  59  59  60  59  66  60  40  84ms

2023.2.28 PorterDuff演算によるマルチポリゴン(穴あきポリゴン)の描画が完成した

低ズームではマルチポリゴンを単純ポリゴンに変更したはずであるが、どこかに不具合があるようである。 取りあえず、スマホ側で対応した。zoom 11以上はマルチポリゴン対応としているが、 実行時間はマルチポリゴン対応なしと有意差はない。

ズーム   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  平均
郊 外 161 110  94 128  94  69  53 106  57  62  56  51  64  42  51  80ms
東 京 141 123  85 112  93  75  74  73  68  58  59  61  50  62  55  79ms

2023.2.28 PorterDuff演算によるマルチポリゴン(穴あきポリゴン)の描画が完成した

低ズームではマルチポリゴンを単純ポリゴンに変更したはずであるが、どこかに不具合があるようである。

ズーム   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  平均
郊 外 419 300 221 209 105  80  65  87  56  60  60  50  46  49  62 125ms
東 京 401 394 207 173 131  75  69  75  61  67  72  46  52  58  42 128ms

2023.2.27 森林のPorterDuff演算によるパターン塗りつぶしを実装した

将来のニーズも見込んで、全zoom、全ポリゴンについて、タイル矩形とレコード境界ボックス(矩形) との交差矩形を求めた。このため、パターン塗りつぶしは行わない低ズームの実行時間も少し増加した。

ズーム   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  平均
郊 外 153 122  96 124  89  80  39 107  49  58  63  63  55  41  55  80ms
東 京 156 132  96 117  94  75  63  69  50  59  63  52  60  36  47  78ms

2023.2.26 2、3の改善、zoom 範囲変更

マルチポリゴンおよびパターン塗りつぶしは未実装である。

陸地ポリゴン    9以下 低ズーム用間引きデータ
             10以上 間引き無しポリゴン分割データ
OSMデータ      8以下 低ズーム用間引きデータ
             12以下 中ズーム用間引きデータ
             13以上 間引きなし
ズーム   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  平均
郊 外 141 104  94 146  88  68  57  68  46  38  48  39  54  35  48  72ms
東 京 143 128  86 110  89  63  77  73  58  55  57  47  58  32  42  75ms

2023.2.23 森林、水域等の描画を追加した

マルチポリゴンおよびパターン塗りつぶしは未実装である。

陸地ポリゴン    9以下 低ズーム用間引きデータ
             10以上 間引き無しポリゴン分割データ
OSMデータ      7以下 低ズーム用間引きデータ
             12以下 中ズーム用間引きデータ
             13以上 間引きなし
ズーム   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  平均
郊 外 138 114 174 142  97  73  47  70  76  69  65  72  69  78  73  90ms
東 京 155 145 163 109  99  77  68  73  81  89  71  80  68  66  51  93ms

zoom 8 zoom 16(皇居)

2023.2.20 陸地ポリゴン

地図アプリGISでは onDrawでレンダリングの完了を待って、描画していた。 一方、地図アプリGISでは onDrawの実行時間を短くするため、レンダリングリクエストを発行するだけ終了している。 レンダリングが終わったら invalidate()を発行している。 これによって、onDrawが起動されるまでには 20ms 前後の待ち時間が発生する。 このため、レンダリングに要する時間は短くても、描画開始から終了までに下記のような時間がかかる。

ズーム  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20  平均
郊 外 33 62 36 41 70 72 32 25 33 32 16 33 26 34 35  39ms
東 京 36 57 59 39 57 51 50 43 34 40 23 15 24 17 28  38ms