Project

General

Profile

Download (4.13 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy 
4
* http://www.e-taxonomy.eu
5
* 
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9

    
10
package eu.etaxonomy.cdm.io.common;
11

    
12
import org.apache.log4j.Logger;
13
import org.joda.time.DateTime;
14
import org.joda.time.Duration;
15
import org.joda.time.ReadableDuration;
16

    
17

    
18
/**
19
 * @author a.mueller
20
 * @since 21.02.2010
21
 * @version 1.0
22
 */
23
public class PartitionerProfiler {
24
	private static final Logger logger = Logger.getLogger(PartitionerProfiler.class);
25
	
26
	ResultSetPartitioner partitioner;
27
	
28
	DateTime startTx = new DateTime();
29
	DateTime startRs = new DateTime();
30
	DateTime startRelObjects = new DateTime();
31
	DateTime startRS2 = new DateTime();
32
	DateTime startDoPartition = new DateTime();
33
	DateTime startDoSave = new DateTime();
34
	DateTime startDoCommit = new DateTime();
35
	DateTime end = new DateTime();
36

    
37
	private Duration durTxStartAll = new Duration(0, 0);
38
	private Duration durPartitionRs1All= new Duration(0, 0);
39
	private Duration durRelObjectsAll = new Duration(0, 0);
40
	private Duration durPartitionRs2All =new Duration(0, 0);
41
	private Duration durPartitionAll = new Duration(0, 0);
42
	private Duration durTxCommitAll = new Duration(0, 0);
43
	private Duration durSaveAll = new Duration(0, 0);
44

    
45
	
46
	private ReadableDuration durTxStartSingle;
47
	private ReadableDuration durPartitionRs1Single;
48
	private ReadableDuration durRelObjectsSingle;
49
	private ReadableDuration durPartitionRs2Single;
50
	private ReadableDuration durPartitionSingle;
51
	private ReadableDuration durSaveSingle;
52
	private ReadableDuration durTxCommitSingle;
53

    
54
	public void startTx(){
55
		startTx = new DateTime();
56

    
57
	}
58
	
59
	public void startRs(){
60
		startRs = new DateTime();
61
		durTxStartSingle = new Duration(startTx, startRs);
62
		durTxStartAll = durTxStartAll.withDurationAdded(durTxStartSingle, 1);
63
	}
64

    
65
	public void startRelObjects(){
66
		startRelObjects = new DateTime();
67
		durPartitionRs1Single = new Duration(startRs, startRelObjects);
68
		durPartitionRs1All= durPartitionRs1All.withDurationAdded(durPartitionRs1Single, 1);
69
	}
70

    
71
	public void startRs2(){
72
		startRS2 = new DateTime();
73
		durRelObjectsSingle = new Duration(startRelObjects, startRS2);
74
		durRelObjectsAll = durRelObjectsAll.withDurationAdded(durRelObjectsSingle, 1);
75
	}
76

    
77
	public void startDoPartition(){
78
		startDoPartition = new DateTime();
79
		startDoSave = new DateTime();
80
		durPartitionRs2Single = new Duration(startRS2, startDoPartition);
81
		durPartitionRs2All = durPartitionRs2All.withDurationAdded(durPartitionRs2Single, 1);
82
	}
83
	
84
	public void startDoSave(){
85
		startDoSave = new DateTime();
86
		//durSaveSingle = new Duration(startRS2, startSave);
87
		//durPartitionRs2All = durPartitionRs2All.withDurationAdded(durPartitionRs2Single, 1);
88
	}
89

    
90
	public void startDoCommit(){
91
		startDoCommit = new DateTime();
92
		durPartitionSingle = new Duration(startDoPartition, startDoCommit);
93
		durPartitionAll = durPartitionAll.withDurationAdded(durPartitionSingle, 1);
94
		durSaveSingle = new Duration(startDoSave, startDoCommit);
95
		durSaveAll = durSaveAll.withDurationAdded(durSaveSingle, 1);
96
	}
97
	
98
	public void end(){
99
		end = new DateTime();
100
		durTxCommitSingle = new Duration(startDoCommit, end);
101
		durTxCommitAll = durTxCommitAll.withDurationAdded(durTxCommitSingle, 1);
102
	}
103

    
104
	public void print(){
105
		if (logger.isDebugEnabled()){
106
			System.out.println("Durations: " +
107
					"Start Transaction: " + durTxStartSingle.getMillis() + "/" + durTxStartAll.getMillis() +   
108
					"; partitionRS1: " + durPartitionRs1Single.getMillis() + "/" + durPartitionRs1All.getMillis() +
109
					"; getRelatedObjects: " + durRelObjectsSingle.getMillis() + "/" + durRelObjectsAll.getMillis() +
110
					"; partitionRS2 " + durPartitionRs2Single.getMillis() + "/" + durPartitionRs2All.getMillis() +
111
					"; doPartition " + durPartitionSingle.getMillis() + "/" + durPartitionAll.getMillis() +
112
					"; doSave " + durSaveSingle.getMillis() + "/" + durSaveAll.getMillis() +
113
					"; commit " + durTxCommitSingle.getMillis() + "/" + durTxCommitAll.getMillis() 
114
			);
115
		}
116
	}
117
	
118
}
(48-48/63)