Skip to main content
. Author manuscript; available in PMC: 2012 Sep 2.
Published in final edited form as: J Proteome Res. 2011 Jul 29;10(9):3871–3879. doi: 10.1021/pr101196n

Table 1. Wall clock time after successive optimizations.

Optimizations in the order they were introduced into Tide, and the measured improvement introduced by each. In several cases, earlier optimizations were prerequisite for later ones: e.g. line 9 showed a slight degradation, but was prerequisite for the gain in line 11. Where indicated, the reader is referred to a section of the text or supplement (section numbers preceded by S) for details. These measurements, taken during Tide’s development, were done on a different machine than the one used for final timing measurements (see Section 2).

Text Description Worm Yeast % Change
1 Crux baseline (4/14/09) 5:47:37.9 36:03.5
2 §3.2, §3.3 Rewrite including deduplication of peptides; heapify; compressed peptides file; and eliminating seeks. 7:39.0 2:41.6 45.4-fold reduction
3 §S1 Sparse representation of theoretical peaks. [Note that input file parsing is introduced here, and removed later.] 1:50.5 −31.6%
4 Fixed-capacity arrays for theoretical peaks; better memory management. 1:13.4 −33.3%
5 §S3 Linearizing the background subtraction for XCorr computation. 0:38.9 −47.2%
6 §S6 Active peptide queue and sorted spectra (rolling window join). 0:38.8 0:13.8 −64.5%
7 §3.3 Eliminate input file parsing. [See text; and compare line 3 above.] 0:25.6 −22.2%
8 Omit calculation with theoretical ions outside spectrometer’s range. 0:23.7 −7.4%
9 §S7 Sparse difference vector representation. 0:24.7 0:09.0 4.2%
10 §S5 Array striping to eliminate one lookup during dot product calculation. 0:20.4 −17.4%
11 §S7 Store the vector diffs to disk instead of calculating at runtime. 0:15.5 0:05.9 −24.0%
12 §S8 Fixed-point arithmetic. 0:14.7 0:06.0 −5.2%
13 §S9, §S10 FIFO memory allocator and run-time compiled dot-product code. 0:8.6 0:4.4 −34%