/xmlbench/trunk

To get this branch, use:
bzr branch http://darksoft.org/webbzr/xmlbench/trunk

« back to all changes in this revision

Viewing changes to security/bench.java

  • Committer: Suren A. Chilingaryan
  • Date: 2009-02-16 09:27:17 UTC
  • Revision ID: csa@dside.dyndns.org-20090216092717-wipyvaaw2srxhgns
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import java.io.*;
 
2
import java.util.*;
 
3
import java.text.*;
 
4
import javax.xml.parsers.DocumentBuilderFactory; 
 
5
import javax.xml.parsers.DocumentBuilder; 
 
6
 
 
7
public class bench {
 
8
    public void InitXML() {};
 
9
    public void InitXML_Security() {};
 
10
    public void ReleaseXML() {};
 
11
    public void ParseXML(FileInputStream is, int iters, int iter) {};
 
12
    public void SignXML(FileInputStream is, int iters, int iter) {};
 
13
    public void VerifyXML(FileInputStream is, int iters, int iter) {};
 
14
    public void EncryptXML(FileInputStream is, int iters, int iter) {};
 
15
    public void DecryptXML(FileInputStream is, int iters, int iter) {};
 
16
    
 
17
    public void Bench(String argv[]) throws IOException {
 
18
        int iterations,size,mode;
 
19
        
 
20
        if (argv.length<2) {
 
21
            System.err.println("Usage:\n\tme <iterations> <xml file|xmlgen|opcgen> [<xsd file>|size]");
 
22
        } else {
 
23
            iterations = Integer.parseInt(argv[0]);
 
24
 
 
25
            Collator mc = Collator.getInstance();
 
26
            if (mc.compare(argv[1],"xmlgen")==0) mode=1;
 
27
            else if (mc.compare(argv[1],"opcgen")==0) mode=2;
 
28
            else mode=0;
 
29
 
 
30
            if (mode>0) size = Integer.parseInt(argv[2]);
 
31
            else size=0;
 
32
                    
 
33
            double a,b;
 
34
            Date pre,post;
 
35
            SimpleDateFormat s,ms;
 
36
            disp d = new disp();
 
37
            disp dv = new disp();
 
38
            double result,init_result,init_result2, init_dtime, init_d;
 
39
            double dv_init_result,dv_init_result2;
 
40
            s=new SimpleDateFormat("ss");
 
41
            ms=new SimpleDateFormat("SSS");
 
42
            FileInputStream file;
 
43
            
 
44
            InitXML();
 
45
            
 
46
            pre=new Date();
 
47
            InitXML_Security();
 
48
            post=new Date();
 
49
            a=Double.valueOf(s.format(post)).doubleValue();
 
50
            b=Double.valueOf(s.format(pre)).doubleValue();
 
51
            init_result=(post.getTime()-pre.getTime());
 
52
            
 
53
            if (mode==0)
 
54
                file = new FileInputStream(argv[1]);
 
55
            else 
 
56
                file = new FileInputStream("../xml.tmp/0.xml");
 
57
            ParseXML(file,iterations,0);
 
58
 
 
59
            pre=new Date();
 
60
            EncryptXML(file,iterations,0);
 
61
            DecryptXML(file,iterations,0);
 
62
            SignXML(file,iterations,0);
 
63
            VerifyXML(file,iterations,0);
 
64
            post=new Date();
 
65
            file.close();
 
66
            a=Double.valueOf(s.format(post)).doubleValue();
 
67
            b=Double.valueOf(s.format(pre)).doubleValue();
 
68
            init_result2=(post.getTime()-pre.getTime());
 
69
            
 
70
            for (int i=1;i<=iterations;i++) {
 
71
                if (mode==0)
 
72
                    file = new FileInputStream(argv[1]);
 
73
                else 
 
74
                    file = new FileInputStream("../xml.tmp/" + i + ".xml");
 
75
                    
 
76
                ParseXML(file,iterations,0);
 
77
        
 
78
                pre=new Date();
 
79
                EncryptXML(file,iterations,0);
 
80
                DecryptXML(file,iterations,0);
 
81
                post=new Date();
 
82
                a=Double.valueOf(s.format(post)).doubleValue();
 
83
                b=Double.valueOf(s.format(pre)).doubleValue();
 
84
                result=(post.getTime()-pre.getTime());
 
85
                dv.disp_event(result);
 
86
//              System.err.println(result);
 
87
 
 
88
                pre=new Date();
 
89
                SignXML(file,iterations,0);
 
90
                VerifyXML(file,iterations,0);
 
91
                post=new Date();
 
92
                file.close();
 
93
                a=Double.valueOf(s.format(post)).doubleValue();
 
94
                b=Double.valueOf(s.format(pre)).doubleValue();
 
95
                result=(post.getTime()-pre.getTime());
 
96
                d.disp_event(result);
 
97
//              System.err.println(result);
 
98
            }
 
99
            d.disp_post();
 
100
            dv.disp_post();
 
101
            
 
102
            if (mode==2) {
 
103
                System.err.println("Signing/Verifiying Time: "+ d.disp_s+" ms for " + iterations + " messages");
 
104
                System.err.println("Encryption/Decryption Time: "+ dv.disp_s+" ms for " + iterations + " messages");
 
105
            } else {
 
106
                init_dtime=(init_result2 - d.disp_m - dv.disp_m);
 
107
                if (init_dtime<0.1) {
 
108
                    init_d=0;
 
109
                    init_dtime=0;
 
110
                } else {
 
111
                    init_d=300 * (d.disp_d+dv.disp_d) / init_dtime;
 
112
                }
 
113
                System.err.println("Initialisation Time: " + init_result + " + " + init_dtime + "(" + init_d + "%) ms");
 
114
                System.err.println("Signing/Verifying Time: " + d.disp_m + "(" + (300*d.disp_d/d.disp_m) + "%)");
 
115
                System.err.println("Encryption/Decryption Time: " + dv.disp_m + "(" + (300*dv.disp_d/dv.disp_m) + "%)");
 
116
            }
 
117
            ReleaseXML();
 
118
        }
 
119
    }
 
120
}
 
 
b'\\ No newline at end of file'