#17
VS |
tilemap |
piechart
|
#
|
node, ms
|
tree, ms
|
rows
|
RRbF
|
|
loops
|
||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 29.272 | 1 | 22′223 | ||||||||||||||
| 0 | .036
| 29.272
| 1
|
| ||||||||||||
| 1 |
| |||||||||||||||
| 2 | .482
| .615
| 1
|
| ||||||||||||
| 3 | .133
| 50
| 2
| 3.8% |
| |||||||||||
| 4 | .151
| 29.236
| 256
|
| ||||||||||||
| 5 | .346
| 1.437
| 256
| 2′244
| 89.8% |
| ||||||||||
| 6 | .011
| .641
| 50
|
| ||||||||||||
| 7 | .003
| .618
| 1
|
| ||||||||||||
| 8 | .012
| 50
|
| |||||||||||||
| 9 | .442
| .450
| 2′500
| 50 |
| |||||||||||
| 10 | .008
| 50
|
| |||||||||||||
| 11 | 1.024
| 27.648
| 256
| 256 |
| |||||||||||
| 12 |
| |||||||||||||||
| 13 | 1.792
| 17.152
| 6′656
| 256 |
| |||||||||||
| 14 | 256
| 256 |
| |||||||||||||
| 15 | 2.042
| 15.360
| 7′680
| 2′560 |
| |||||||||||
| 16 | 7′680
| 2′560 |
| |||||||||||||
| 17 | 13.318
| 6′659
| 19′977
| 75.0% | 6′659 |
| ||||||||||
| 18 | 6.912
| 26.624
| 6′656
| 256 |
| |||||||||||
| 19 | 2.560
| 19.712
| 6′656
| 256 |
| |||||||||||
.270 |
| |||||||||||||||
.211 | 29.483 |
| ||||||||||||||
Aggregate (actual time=29.270..29.272 rows=1 loops=1) CTE matrix -> Aggregate (actual time=0.614..0.615 rows=1 loops=1) -> Function Scan on regexp_split_to_table line (actual time=0.116..0.133 rows=50 loops=1) Filter: (btrim(line) <> ''::text) Rows Removed by Filter: 2 -> Nested Loop (actual time=0.864..29.236 rows=256 loops=1) -> Nested Loop (actual time=0.641..1.437 rows=256 loops=1) Join Filter: (matrix.m[y.y][x.x] = 0) Rows Removed by Join Filter: 2′244 -> Nested Loop (actual time=0.624..0.641 rows=50 loops=1) -> CTE Scan on matrix (actual time=0.618..0.618 rows=1 loops=1) -> Function Scan on generate_subscripts x (actual time=0.005..0.012 rows=50 loops=1) -> Memoize (actual time=0.007..0.009 rows=50 loops=50) Cache Key: matrix.m Cache Mode: binary Hits: 49 Misses: 1 Evictions: 0 Overflows: 0 Memory Usage: 12kB -> Function Scan on generate_subscripts y (actual time=0.005..0.008 rows=50 loops=1) -> Aggregate (actual time=0.108..0.108 rows=1 loops=256) CTE r -> Recursive Union (actual time=0.000..0.067 rows=26 loops=256) -> Result (actual time=0.000..0.000 rows=1 loops=256) -> Nested Loop (actual time=0.002..0.006 rows=3 loops=2′560) -> WorkTable Scan on r r_1 (actual time=0.000..0.000 rows=3 loops=2′560) -> Values Scan on "*VALUES*" (actual time=0.001..0.002 rows=1 loops=6′659) Filter: ((r_1.h + 1) = (matrix.m)[column2][column1]) Rows Removed by Filter: 3 -> Sort (actual time=0.102..0.104 rows=26 loops=256) Sort Key: (ROW(r.x, r.y)) Sort Method: quicksort Memory: 28kB -> CTE Scan on r (actual time=0.001..0.077 rows=26 loops=256) Planning Time: 0.270 ms Execution Time: 29.483 ms
Process
CTE matrix
-> Process
-> Scan Function regexp_split_to_table
-> Join
-> Process
CTE r
-> Recursive Union
-> Result
-> Join
-> Scan CTE r
-> Scan Values "*VALUES*"
-> Scan CTE r
-> Scan CTE matrix
-> Scan Function generate_subscripts
-> Scan Function generate_subscripts"Aggregate (actual time=29.270..29.272 rows=1 loops=1)" " CTE matrix" " -> Aggregate (actual time=0.614..0.615 rows=1 loops=1)" " -> Function Scan on regexp_split_to_table line (actual time=0.116..0.133 rows=50 loops=1)" " Filter: (btrim(line) <> ''::text)" " Rows Removed by Filter: 2" " -> Nested Loop (actual time=0.864..29.236 rows=256 loops=1)" " -> Nested Loop (actual time=0.641..1.437 rows=256 loops=1)" " Join Filter: (matrix.m[y.y][x.x] = 0)" " Rows Removed by Join Filter: 2244" " -> Nested Loop (actual time=0.624..0.641 rows=50 loops=1)" " -> CTE Scan on matrix (actual time=0.618..0.618 rows=1 loops=1)" " -> Function Scan on generate_subscripts x (actual time=0.005..0.012 rows=50 loops=1)" " -> Memoize (actual time=0.007..0.009 rows=50 loops=50)" " Cache Key: matrix.m" " Cache Mode: binary" " Hits: 49 Misses: 1 Evictions: 0 Overflows: 0 Memory Usage: 12kB" " -> Function Scan on generate_subscripts y (actual time=0.005..0.008 rows=50 loops=1)" " -> Aggregate (actual time=0.108..0.108 rows=1 loops=256)" " CTE r" " -> Recursive Union (actual time=0.000..0.067 rows=26 loops=256)" " -> Result (actual time=0.000..0.000 rows=1 loops=256)" " -> Nested Loop (actual time=0.002..0.006 rows=3 loops=2560)" " -> WorkTable Scan on r r_1 (actual time=0.000..0.000 rows=3 loops=2560)" " -> Values Scan on "*VALUES*" (actual time=0.001..0.002 rows=1 loops=6659)" " Filter: ((r_1.h + 1) = (matrix.m)[column2][column1])" " Rows Removed by Filter: 3" " -> Sort (actual time=0.102..0.104 rows=26 loops=256)" " Sort Key: (ROW(r.x, r.y))" " Sort Method: quicksort Memory: 28kB" " -> CTE Scan on r (actual time=0.001..0.077 rows=26 loops=256)" "Planning Time: 0.270 ms" "Execution Time: 29.483 ms"
| время | % | rows | RRbF | % | loops | тип узла | таблица | индекс | узлы | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
13.318
|
45.5
|
6′659
|
19′977
| 75.0 |
6′659
| Values Scan | 17 | |||||
|
6.912
|
23.6
|
6′656
|
256
| Sort | 18 | |||||||
|
2.560
|
8.7
|
6′656
|
256
| CTE Scan | 19 | |||||||
|
2.550
|
8.7
|
8′242
|
2′244
| 21.4 |
2′563
| Nested Loop | 4 5 6 15 |
4
| ||||
|
1.792
|
6.1
|
6′656
|
256
| Recursive Union | 13 | |||||||
|
1.542
|
5.3
|
258
|
258
| Aggregate | 0 2 11 |
3
| ||||||
|
.442
|
1.5
|
2′500
|
50
| Memoize | 9 | |||||||
|
.133
|
0.5
|
50
|
2
| 3.8 | Function Scan | 3 | ||||||
|
.020
|
0.1
|
100
|
2
| Function Scan | 8 10 |
2
| ||||||
|
.003
|
0.0
|
1
| CTE Scan | 7 | ||||||||
|
256
|
256
| Result | 14 | |||||||||
|
7′680
|
2′560
| WorkTable Scan | 16 | |||||||||