Commit 9de45b7
Further speed up of VCF parser (formats).
The if elseif checks are now a switch statement and juggled in order a
bit. Also the fmt[j].max_m type code is now f->max_m with f
incremented along with j.
The impact on gcc builds is minor (maybe 1%), but for clang this was
8-9% speed improvement on a 1000 genome multi-sample VCF. Example
timings for clang:
Previous commit
23333.77 msec task-clock # 1.000 CPUs utilized
83667512727 cycles # 3.586 GHz
199145555089 instructions # 2.38 insn per cycle
43099743981 branches # 1847.097 M/sec
665687093 branch-misses # 1.54% of all branches
This commit
75967289857 cycles # 3.585 GHz
195076309580 instructions # 2.57 insn per cycle
43265084488 branches # 2041.736 M/sec
640008186 branch-misses # 1.48% of all branches1 parent b1acab6 commit 9de45b7
1 file changed
+27
-18
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2288 | 2288 | | |
2289 | 2289 | | |
2290 | 2290 | | |
2291 | | - | |
2292 | | - | |
2293 | | - | |
2294 | | - | |
2295 | | - | |
2296 | | - | |
2297 | | - | |
2298 | | - | |
| 2291 | + | |
| 2292 | + | |
| 2293 | + | |
| 2294 | + | |
| 2295 | + | |
| 2296 | + | |
| 2297 | + | |
| 2298 | + | |
| 2299 | + | |
| 2300 | + | |
| 2301 | + | |
| 2302 | + | |
| 2303 | + | |
| 2304 | + | |
| 2305 | + | |
| 2306 | + | |
| 2307 | + | |
| 2308 | + | |
| 2309 | + | |
| 2310 | + | |
2299 | 2311 | | |
2300 | | - | |
2301 | | - | |
2302 | | - | |
2303 | | - | |
2304 | | - | |
| 2312 | + | |
| 2313 | + | |
| 2314 | + | |
2305 | 2315 | | |
2306 | | - | |
| 2316 | + | |
2307 | 2317 | | |
2308 | 2318 | | |
2309 | 2319 | | |
2310 | | - | |
2311 | | - | |
| 2320 | + | |
| 2321 | + | |
2312 | 2322 | | |
2313 | | - | |
2314 | | - | |
2315 | 2323 | | |
2316 | 2324 | | |
2317 | 2325 | | |
| 2326 | + | |
2318 | 2327 | | |
2319 | 2328 | | |
2320 | 2329 | | |
| |||
0 commit comments