Commit 5ce0d8c
committed
Prototype - decrease readZ time by 9x - DO NOT MERGE
This is a somewhat simple change that significantly decreases the time taken in
readZ.
This is 100% a prototype commit, as it's really crudely done, but I wanted to
have a prototype to see if this change would be possible and it only works for
data that have only FULL_IMPEDANCE
In this commit, we create an array of Mtrx pointers, rx_map (of type
Mtrx_has_map_t). Because this is just a pointer array, it should be relatively
small in memory.
We allocate `rx_map` to be the expected number of stations as read from the
header. Then, as we read the each data line, we compute a hash using the FNV-1A
hashing algorithm. From the computed hash, we modulo it with the total number
of stations, giving us a index into `rx_map`.
That index will give us constant time access, removing the need for the O(n^2)
action. We can thus use the map to identify if a receiver has already been
added.
For a CONUS case, this reduces the time in readZ from 9 mins, to ~1 min.
We also reduce the time, but only in the Full_Impedance read, by not using
`backspace` so that we don't re-read the line of the file again. This saves
only about 1s of total time.1 parent 050fd6c commit 5ce0d8c
3 files changed
Lines changed: 117 additions & 51 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
49 | 55 | | |
50 | 56 | | |
| 57 | + | |
51 | 58 | | |
52 | 59 | | |
53 | 60 | | |
54 | 61 | | |
| 62 | + | |
55 | 63 | | |
56 | 64 | | |
57 | 65 | | |
| |||
62 | 70 | | |
63 | 71 | | |
64 | 72 | | |
65 | | - | |
66 | 73 | | |
67 | 74 | | |
68 | 75 | | |
69 | 76 | | |
70 | 77 | | |
71 | 78 | | |
| 79 | + | |
72 | 80 | | |
73 | 81 | | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
74 | 86 | | |
75 | 87 | | |
76 | 88 | | |
| |||
83 | 95 | | |
84 | 96 | | |
85 | 97 | | |
| 98 | + | |
| 99 | + | |
86 | 100 | | |
87 | 101 | | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
88 | 138 | | |
89 | 139 | | |
90 | 140 | | |
91 | 141 | | |
92 | 142 | | |
93 | 143 | | |
94 | 144 | | |
95 | | - | |
| 145 | + | |
96 | 146 | | |
97 | 147 | | |
98 | 148 | | |
99 | 149 | | |
100 | 150 | | |
101 | 151 | | |
| 152 | + | |
| 153 | + | |
102 | 154 | | |
103 | 155 | | |
104 | | - | |
| 156 | + | |
105 | 157 | | |
106 | 158 | | |
107 | 159 | | |
| 160 | + | |
108 | 161 | | |
109 | 162 | | |
110 | 163 | | |
111 | 164 | | |
112 | 165 | | |
| 166 | + | |
| 167 | + | |
113 | 168 | | |
114 | 169 | | |
115 | 170 | | |
| |||
118 | 173 | | |
119 | 174 | | |
120 | 175 | | |
121 | | - | |
122 | 176 | | |
123 | 177 | | |
124 | 178 | | |
| 179 | + | |
125 | 180 | | |
126 | 181 | | |
127 | 182 | | |
128 | 183 | | |
129 | 184 | | |
130 | 185 | | |
131 | 186 | | |
132 | | - | |
133 | | - | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | | - | |
139 | | - | |
140 | | - | |
141 | | - | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
159 | | - | |
160 | | - | |
161 | | - | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
162 | 213 | | |
163 | 214 | | |
164 | 215 | | |
165 | 216 | | |
166 | | - | |
167 | | - | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
168 | 221 | | |
169 | 222 | | |
170 | 223 | | |
171 | 224 | | |
172 | 225 | | |
173 | 226 | | |
174 | 227 | | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
175 | 231 | | |
176 | 232 | | |
177 | 233 | | |
| |||
207 | 263 | | |
208 | 264 | | |
209 | 265 | | |
210 | | - | |
| 266 | + | |
211 | 267 | | |
212 | 268 | | |
213 | 269 | | |
| |||
274 | 330 | | |
275 | 331 | | |
276 | 332 | | |
277 | | - | |
| 333 | + | |
278 | 334 | | |
| 335 | + | |
279 | 336 | | |
280 | | - | |
| 337 | + | |
281 | 338 | | |
282 | | - | |
| 339 | + | |
283 | 340 | | |
284 | 341 | | |
285 | 342 | | |
| |||
290 | 347 | | |
291 | 348 | | |
292 | 349 | | |
| 350 | + | |
| 351 | + | |
293 | 352 | | |
294 | 353 | | |
295 | 354 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
825 | 825 | | |
826 | 826 | | |
827 | 827 | | |
828 | | - | |
| 828 | + | |
829 | 829 | | |
830 | 830 | | |
831 | 831 | | |
832 | | - | |
| 832 | + | |
| 833 | + | |
833 | 834 | | |
834 | 835 | | |
835 | 836 | | |
836 | 837 | | |
837 | 838 | | |
838 | 839 | | |
839 | 840 | | |
840 | | - | |
| 841 | + | |
841 | 842 | | |
842 | 843 | | |
843 | 844 | | |
844 | 845 | | |
845 | 846 | | |
846 | 847 | | |
847 | 848 | | |
848 | | - | |
| 849 | + | |
849 | 850 | | |
850 | 851 | | |
851 | 852 | | |
852 | 853 | | |
853 | 854 | | |
854 | 855 | | |
855 | 856 | | |
856 | | - | |
| 857 | + | |
857 | 858 | | |
858 | 859 | | |
859 | 860 | | |
860 | 861 | | |
861 | 862 | | |
862 | 863 | | |
863 | 864 | | |
864 | | - | |
| 865 | + | |
865 | 866 | | |
866 | 867 | | |
867 | 868 | | |
| |||
895 | 896 | | |
896 | 897 | | |
897 | 898 | | |
898 | | - | |
| 899 | + | |
899 | 900 | | |
900 | 901 | | |
901 | 902 | | |
| |||
1199 | 1200 | | |
1200 | 1201 | | |
1201 | 1202 | | |
1202 | | - | |
1203 | 1203 | | |
1204 | 1204 | | |
1205 | 1205 | | |
1206 | 1206 | | |
1207 | | - | |
| 1207 | + | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
| 1211 | + | |
| 1212 | + | |
| 1213 | + | |
1208 | 1214 | | |
1209 | 1215 | | |
1210 | 1216 | | |
1211 | 1217 | | |
1212 | 1218 | | |
1213 | 1219 | | |
1214 | | - | |
| 1220 | + | |
1215 | 1221 | | |
1216 | 1222 | | |
1217 | 1223 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1739 | 1739 | | |
1740 | 1740 | | |
1741 | 1741 | | |
1742 | | - | |
| 1742 | + | |
| 1743 | + | |
1743 | 1744 | | |
1744 | 1745 | | |
1745 | 1746 | | |
| |||
0 commit comments