性能简单测试
This commit is contained in:
parent
17a40377d7
commit
9c4c19d271
139
src/test/java/cmbpoc/PerformanceTest.java
Normal file
139
src/test/java/cmbpoc/PerformanceTest.java
Normal file
@ -0,0 +1,139 @@
|
||||
package cmbpoc;
|
||||
|
||||
import com.sunyard.RetWrap;
|
||||
import com.sunyard.SydApi;
|
||||
import com.sunyard.proto.Util;
|
||||
import org.junit.*;
|
||||
import racal.sunyard.main.SydApi4j;
|
||||
|
||||
public class PerformanceTest {
|
||||
|
||||
private SydApi4j api;
|
||||
private byte[] privateKey4Ende;
|
||||
private byte[] publicKey4Ende;
|
||||
private byte[] orgData2K = new byte[2 * 1024];
|
||||
private byte[] orgData2M = new byte[2 * 1024 * 1024];
|
||||
private byte[] orgData10M = new byte[10 * 1024 * 1024];
|
||||
private static final int TEST_ROUNDS = 10;
|
||||
|
||||
@Before
|
||||
public void start() {
|
||||
System.setProperty("com.sunyard.sydapi4j.debug", "false");
|
||||
this.api = (SydApi4j) new SydApi4j().connect("192.168.100.145", 8889, null, 30000);
|
||||
this.publicKey4Ende = Util.hexString2Bytes("03420004AF3D4E55D26564C6C937E6EA9232691C01AC5E7916AD2136F788CE7C1E4D0AE8C4754DEC2F7F6A78962D51A171A6F5B4F11823390AEC8B5B0246CD2CCF8052B7");
|
||||
this.privateKey4Ende = Util.hexString2Bytes("00010000963F7C3A98B7810F52D2861A060E18A9D4D59796CF33967DD61EEDA091E1AD9B0000000000000000000000000000000000000000000000000000000000000000");
|
||||
}
|
||||
|
||||
@After
|
||||
public void stop() {
|
||||
if (null != api) {
|
||||
this.api.disconnect();
|
||||
this.api = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void SYD_SM2_Encrypt_Performance_2K() {
|
||||
System.out.println("=== SYD_SM2_Encrypt Performance Test - 2K Data ===");
|
||||
long totalEncryptTime = 0;
|
||||
long totalDecryptTime = 0;
|
||||
|
||||
for (int i = 0; i < TEST_ROUNDS; i++) {
|
||||
long encryptStart = System.currentTimeMillis();
|
||||
byte[] enData = this.api.SYD_SM2Encrypt(publicKey4Ende, orgData2K);
|
||||
long encryptEnd = System.currentTimeMillis();
|
||||
|
||||
long decryptStart = System.currentTimeMillis();
|
||||
byte[] deData = this.api.SYD_SM2Decrypt(privateKey4Ende, enData);
|
||||
long decryptEnd = System.currentTimeMillis();
|
||||
|
||||
totalEncryptTime += (encryptEnd - encryptStart);
|
||||
totalDecryptTime += (decryptEnd - decryptStart);
|
||||
|
||||
Assert.assertArrayEquals(orgData2K, deData);
|
||||
}
|
||||
|
||||
double avgEncryptTime = (double) totalEncryptTime / TEST_ROUNDS;
|
||||
double avgDecryptTime = (double) totalDecryptTime / TEST_ROUNDS;
|
||||
double encryptThroughput = (2.0 / avgEncryptTime) * 1000;
|
||||
double decryptThroughput = (2.0 / avgDecryptTime) * 1000;
|
||||
|
||||
System.out.println("Test Rounds: " + TEST_ROUNDS);
|
||||
System.out.println("Data Size: 2KB");
|
||||
System.out.printf("Average Encrypt Time: %.2f ms%n", avgEncryptTime);
|
||||
System.out.printf("Average Decrypt Time: %.2f ms%n", avgDecryptTime);
|
||||
System.out.printf("Encrypt Throughput: %.2f KB/s%n", encryptThroughput);
|
||||
System.out.printf("Decrypt Throughput: %.2f KB/s%n", decryptThroughput);
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void SYD_SM2_Encrypt_Performance_2M() {
|
||||
System.out.println("=== SYD_SM2_Encrypt Performance Test - 2M Data ===");
|
||||
long totalEncryptTime = 0;
|
||||
long totalDecryptTime = 0;
|
||||
|
||||
for (int i = 0; i < TEST_ROUNDS; i++) {
|
||||
long encryptStart = System.currentTimeMillis();
|
||||
byte[] enData = this.api.SYD_SM2Encrypt(publicKey4Ende, orgData2M);
|
||||
long encryptEnd = System.currentTimeMillis();
|
||||
|
||||
long decryptStart = System.currentTimeMillis();
|
||||
byte[] deData = this.api.SYD_SM2Decrypt(privateKey4Ende, enData);
|
||||
long decryptEnd = System.currentTimeMillis();
|
||||
|
||||
totalEncryptTime += (encryptEnd - encryptStart);
|
||||
totalDecryptTime += (decryptEnd - decryptStart);
|
||||
|
||||
Assert.assertArrayEquals(orgData2M, deData);
|
||||
}
|
||||
|
||||
double avgEncryptTime = (double) totalEncryptTime / TEST_ROUNDS;
|
||||
double avgDecryptTime = (double) totalDecryptTime / TEST_ROUNDS;
|
||||
double encryptThroughput = (2048.0 / avgEncryptTime) * 1000;
|
||||
double decryptThroughput = (2048.0 / avgDecryptTime) * 1000;
|
||||
|
||||
System.out.println("Test Rounds: " + TEST_ROUNDS);
|
||||
System.out.println("Data Size: 2MB");
|
||||
System.out.printf("Average Encrypt Time: %.2f ms%n", avgEncryptTime);
|
||||
System.out.printf("Average Decrypt Time: %.2f ms%n", avgDecryptTime);
|
||||
System.out.printf("Encrypt Throughput: %.2f KB/s%n", encryptThroughput);
|
||||
System.out.printf("Decrypt Throughput: %.2f KB/s%n", decryptThroughput);
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void SYD_SM2_Encrypt_Performance_10M() {
|
||||
System.out.println("=== SYD_SM2_Encrypt Performance Test - 10M Data ===");
|
||||
long totalEncryptTime = 0;
|
||||
long totalDecryptTime = 0;
|
||||
|
||||
for (int i = 0; i < TEST_ROUNDS; i++) {
|
||||
long encryptStart = System.currentTimeMillis();
|
||||
byte[] enData = this.api.SYD_SM2Encrypt(publicKey4Ende, orgData10M);
|
||||
long encryptEnd = System.currentTimeMillis();
|
||||
|
||||
long decryptStart = System.currentTimeMillis();
|
||||
byte[] deData = this.api.SYD_SM2Decrypt(privateKey4Ende, enData);
|
||||
long decryptEnd = System.currentTimeMillis();
|
||||
|
||||
totalEncryptTime += (encryptEnd - encryptStart);
|
||||
totalDecryptTime += (decryptEnd - decryptStart);
|
||||
|
||||
Assert.assertArrayEquals(orgData10M, deData);
|
||||
}
|
||||
|
||||
double avgEncryptTime = (double) totalEncryptTime / TEST_ROUNDS;
|
||||
double avgDecryptTime = (double) totalDecryptTime / TEST_ROUNDS;
|
||||
double encryptThroughput = (10240.0 / avgEncryptTime) * 1000;
|
||||
double decryptThroughput = (10240.0 / avgDecryptTime) * 1000;
|
||||
|
||||
System.out.println("Test Rounds: " + TEST_ROUNDS);
|
||||
System.out.println("Data Size: 10MB");
|
||||
System.out.printf("Average Encrypt Time: %.2f ms%n", avgEncryptTime);
|
||||
System.out.printf("Average Decrypt Time: %.2f ms%n", avgDecryptTime);
|
||||
System.out.printf("Encrypt Throughput: %.2f KB/s%n", encryptThroughput);
|
||||
System.out.printf("Decrypt Throughput: %.2f KB/s%n", decryptThroughput);
|
||||
System.out.println();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user