有没有办法提高Thread.start方法的性能.因为我知道Thread.start将在一个单独的线程中调用胎面的run方法,但我发现它比调用上下文中的简单方法调用需要更多的时间.
有没有办法同时对齐jtable中的所有列?使用这个:
DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
rightRenderer.setHorizontalAlignment( JLabel.RIGHT );
JTAB_TABLE.getColumnModel().getColumn(0).setCellRenderer( rightRenderer );
Run Code Online (Sandbox Code Playgroud)
我会让我只对齐一列,但我需要对齐所有列.
在java中使用加密库的速度不稳定第一轮比其他轮需要很多时间,一段时间后执行加密所需的时间是稳定的,这是为什么以及如何从一开始就达到稳定,如果需要一些intail代码我可以做到,但我确实知道需要调用 encrypt 方法来花费大量时间,请查看代码和包含结果的最后一行。
此类包含用于加密/解密的静态方法
package karp.generalutil.common;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
public class Encryptor {
/**
* @param args
*/
static Cipher eCipher,dCipher;
public Encryptor()
{
try {
eCipher=Cipher.getInstance("AES");
dCipher=Cipher.getInstance("AES");
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/// for test
public static void main (String args[])
{
try {
KeyGenerator …
Run Code Online (Sandbox Code Playgroud) 我打电话给某个方法当我单独使用它时需要11523纳秒的平均值(10000次调用),但是当我从另一个类的上下文中调用它时需要大约95721
方法体是
public static byte [] validateRequest(KARPPacket karpPacket)
{
try {
long before,time;
before =System.nanoTime();
byte [] encryptedTicket=karpPacket.getTicket();
byte[] decryptedTicket=null;
if(encryptedTicket==null)
return null;
if(encryptedTicket.length%16==0)
{
decryptedTicket = Encryptor.decrypt(encryptedTicket, ClientWindow.getSecretKey());
time=System.nanoTime()-before;
System.out.println(time);
if(karpPacket.getSenderProtocolAddressAsString().equals(getSrcAddressFromTicket(decryptedTicket)))
{
ClientTicketManager.getArpCash().put(karpPacket.getSenderProtocolAddressAsString(), karpPacket.getSenderHardwareAddressFormatted());
return decryptedTicket;
}
return decryptedTicket;
}
return null;
} catch (Exception e) {
e.printStackTrace();
return null;
}
Run Code Online (Sandbox Code Playgroud)
为什么这样以及如何提高其性能.我希望这个代码足够了
这是encryptor.decrypt方法
public static byte[] decrypt(byte [] encryptedByteArray,String keyString)throws NoSuchAlgorithmException,
NoSuchPaddingException, InvalidKeyException,
IllegalBlockSizeException, BadPaddingException
{
SecretKey key=loadKey(keyString);
byte[] clearByteArray;
Cipher dCipher=Cipher.getInstance("AES");
dCipher.init(Cipher.DECRYPT_MODE,key );
clearByteArray=dCipher.doFinal(encryptedByteArray);
return clearByteArray;
Run Code Online (Sandbox Code Playgroud)
}
和加载密钥 …