⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 benchmarkresults.java

📁 The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
💻 JAVA
字号:
/* -*- tab-width: 4 -*- * * Electric(tm) VLSI Design System * * File: BenchmarkResult.java * * Copyright (c) 2007 Sun Microsystems and Static Free Software * * Electric(tm) is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * Electric(tm) is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Electric(tm); see the file COPYING.  If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, Mass 02111-1307, USA.*/package com.sun.electric.tool.ncc.result;import java.io.Serializable;import java.util.Arrays;import java.util.HashMap;public class BenchmarkResults implements Serializable {	private static final long serialVersionUID = 1L;	public static enum BenchIdx { 		MERGE_TIME,		LOCAL_PARTITIONING_TIME, 		HASH_CODE_PASS1_TIME, 		HASH_CODE_PASS2_TIME,		EXPORT_MATCHING_TIME,		SIZE_MATCHING_TIME,		SIZE_CHECKING_TIME,		FORCED_PARTITION_TIME,		EXPORT_CHECKING_TIME,		RANDOM_MATCHING_TIME,		FINAL_SWAP_TIME,		ABSTRACTION_CONSTRUCTION_TIME,		BACKTRACK_SPACE,		BACKTRACK_GUESSES,		SUB_NCC_TIME,		SUB_NCC_COUNT,		SCHREIER_SIMS_TIME,		SCHREIER_SIMS_COUNT,		QUICK_INTERCHANGE_TIME,		QUICK_INTERCHANGE_COUNT,		NEWBORNS_PROCESSED,		MAX_MATRIX_SIZE,		MAX_PORT_SIZE,		SUM_OF_MATRIX_SIZES,		NUMBER_OF_MATRICES,		PASS_RESULT,		FAIL_RESULT,		MAYBE_RESULT,		NUMBER_OF_VALUES;	}	public long[] results = new long[BenchIdx.NUMBER_OF_VALUES.ordinal()];			public static class CellInfo implements Serializable{		/**		 * 		 */		private static final long serialVersionUID = 1L;		public String name;		public int[] matrixSizes;	}	public void computeFinalStatistics(){		long maxMatrix=0;		long maxPort=0;		long sum=0;		long count=0;		for(CellInfo ci:info.values()){			int numPorts = 0;			int[] matrixSizes = ci.matrixSizes;			for(int i=0;i<matrixSizes.length;i++){				if(matrixSizes[i]>maxMatrix)maxMatrix=matrixSizes[i];				numPorts+=matrixSizes[i];				count++;							}			if(numPorts>maxPort)maxPort=numPorts;			sum+=numPorts;		}		results[BenchIdx.MAX_MATRIX_SIZE.ordinal()]=maxMatrix;		results[BenchIdx.MAX_PORT_SIZE.ordinal()]=maxPort;		results[BenchIdx.SUM_OF_MATRIX_SIZES.ordinal()]=sum;		results[BenchIdx.NUMBER_OF_MATRICES.ordinal()]=count;	}	public HashMap<String,CellInfo> info = new HashMap<String,CellInfo>();		//public static BenchmarkResults globalBenchmarkResults = new BenchmarkResults();		public BenchmarkResults(){		super();	}		public BenchmarkResults(BenchmarkResults other){		this.results = other.results.clone();	}		public void clearResults(){		Arrays.fill(results,0);		info = new HashMap<String,CellInfo>();	}		public void accumulateResults(BenchmarkResults other){		for(int i=0;i<BenchIdx.NUMBER_OF_VALUES.ordinal();i++){			this.results[i]+=other.results[i];		}		for(String key:other.info.keySet()){			this.info.put(key, other.getInfo(key));		}	}	public void normalizeResults(long div){		for(int i=0;i<BenchIdx.NUMBER_OF_VALUES.ordinal();i++){			this.results[i]/=div;		}			}		public long get(BenchIdx idx){		return idx==BenchIdx.NUMBER_OF_VALUES?results[idx.ordinal()]:0;	}	public void addInfo(String name, CellInfo newInfo){		info.put(name, newInfo);	}		public CellInfo getInfo(String name){		return info.get(name);	}	public long get(int idx){		return idx<BenchIdx.NUMBER_OF_VALUES.ordinal()?results[idx]:-1;	}	public static void main(String[] args){			}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -