📄 testdata.java
字号:
} // padd number from left static String format(int n, String col) { String res = padd + n; return res.substring(res.length() - col.length()); } // padd string from right static String format(String s, String col) { return (s + padd).substring(0,col.length()); } /** * Prepare a list of benchmark data, using all possible combinations of * benchmark parameters. * * @param sources list of directories containing different source document * collections * @param analyzers of analyzers to use. */ public static TestData[] getAll(File[] sources, Analyzer[] analyzers) { List res = new ArrayList(50); TestData ref = new TestData(); for (int q = 0; q < analyzers.length; q++) { for (int m = 0; m < sources.length; m++) { for (int i = 0; i < MAX_BUFFERED_DOCS_COUNTS.length; i++) { for (int k = 0; k < MERGEFACTOR_COUNTS.length; k++) { for (int n = 0; n < Constants.BOOLEANS.length; n++) { for (int p = 0; p < Constants.BOOLEANS.length; p++) { ref.id = "td-" + q + m + i + k + n + p; ref.source = sources[m]; ref.analyzer = analyzers[q]; ref.maxBufferedDocs = MAX_BUFFERED_DOCS_COUNTS[i]; ref.mergeFactor = MERGEFACTOR_COUNTS[k]; ref.compound = Constants.BOOLEANS[n].booleanValue(); ref.optimize = Constants.BOOLEANS[p].booleanValue(); try { res.add(ref.clone()); } catch (Exception e) { e.printStackTrace(); } } } } } } } return (TestData[]) res.toArray(new TestData[0]); } /** * Similar to {@link #getAll(java.io.File[], org.apache.lucene.analysis.Analyzer[])} but only uses * maxBufferedDocs of 10 and 100 and same for mergeFactor, thus reducing the number of permutations significantly. * It also only uses compund file and optimize is always true. * * @param sources * @param analyzers * @return An Array of {@link TestData} */ public static TestData[] getTestDataMinMaxMergeAndMaxBuffered(File[] sources, Analyzer[] analyzers) { List res = new ArrayList(50); TestData ref = new TestData(); for (int q = 0; q < analyzers.length; q++) { for (int m = 0; m < sources.length; m++) { ref.id = "td-" + q + m + "_" + 10 + "_" + 10; ref.source = sources[m]; ref.analyzer = analyzers[q]; ref.maxBufferedDocs = 10; ref.mergeFactor = 10;//MERGEFACTOR_COUNTS[k]; ref.compound = true; ref.optimize = true; try { res.add(ref.clone()); } catch (Exception e) { e.printStackTrace(); } ref.id = "td-" + q + m + "_" + 10 + "_" + 100; ref.source = sources[m]; ref.analyzer = analyzers[q]; ref.maxBufferedDocs = 10; ref.mergeFactor = 100;//MERGEFACTOR_COUNTS[k]; ref.compound = true; ref.optimize = true; try { res.add(ref.clone()); } catch (Exception e) { e.printStackTrace(); } ref.id = "td-" + q + m + "_" + 100 + "_" + 10; ref.source = sources[m]; ref.analyzer = analyzers[q]; ref.maxBufferedDocs = 100; ref.mergeFactor = 10;//MERGEFACTOR_COUNTS[k]; ref.compound = true; ref.optimize = true; try { res.add(ref.clone()); } catch (Exception e) { e.printStackTrace(); } ref.id = "td-" + q + m + "_" + 100 + "_" + 100; ref.source = sources[m]; ref.analyzer = analyzers[q]; ref.maxBufferedDocs = 100; ref.mergeFactor = 100;//MERGEFACTOR_COUNTS[k]; ref.compound = true; ref.optimize = true; try { res.add(ref.clone()); } catch (Exception e) { e.printStackTrace(); } } } return (TestData[]) res.toArray(new TestData[0]); } protected Object clone() { TestData cl = new TestData(); cl.id = id; cl.compound = compound; cl.heap = heap; cl.mergeFactor = mergeFactor; cl.maxBufferedDocs = maxBufferedDocs; cl.optimize = optimize; cl.source = source; cl.directory = directory; cl.analyzer = analyzer; // don't clone runData return cl; } public String toString() { StringBuffer res = new StringBuffer(); res.append("#-- ID: ").append(id).append(", ").append(new Date()).append(", heap=").append(heap).append(" --\n"); res.append("# source=").append(source).append(", directory=").append(directory).append("\n"); res.append("# maxBufferedDocs=").append(maxBufferedDocs).append(", mergeFactor=").append(mergeFactor); res.append(", compound=").append(compound).append(", optimize=").append(optimize).append("\n"); if (queries != null) { res.append(QueryData.getLabels()).append("\n"); for (int i = 0; i < queries.length; i++) { res.append("# ").append(queries[i].toString()).append("\n"); } } return res.toString(); } public Analyzer getAnalyzer() { return analyzer; } public void setAnalyzer(Analyzer analyzer) { this.analyzer = analyzer; } public boolean isCompound() { return compound; } public void setCompound(boolean compound) { this.compound = compound; } public Directory getDirectory() { return directory; } public void setDirectory(Directory directory) { this.directory = directory; } public long getHeap() { return heap; } public void setHeap(long heap) { this.heap = heap; } public String getId() { return id; } public void setId(String id) { this.id = id; } public int getMaxBufferedDocs() { return maxBufferedDocs; } public void setMaxBufferedDocs(int maxBufferedDocs) { this.maxBufferedDocs = maxBufferedDocs; } public int getMergeFactor() { return mergeFactor; } public void setMergeFactor(int mergeFactor) { this.mergeFactor = mergeFactor; } public boolean isOptimize() { return optimize; } public void setOptimize(boolean optimize) { this.optimize = optimize; } public QueryData[] getQueries() { return queries; } public void setQueries(QueryData[] queries) { this.queries = queries; } public Vector getRunData() { return runData; } public void setRunData(Vector runData) { this.runData = runData; } public File getSource() { return source; } public void setSource(File source) { this.source = source; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -