优化代码,性能暴涨

This commit is contained in:
Administrator
2025-01-29 14:01:11 +08:00
parent e243203535
commit 6de65562be
130 changed files with 9138 additions and 1020 deletions
+106 -5
View File
@@ -1,12 +1,17 @@
package org.kne.cloud.network.klalb;
import java.awt.Color;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.LinkedBlockingQueue;
import org.kne.cloud.network.MultipurposeSocketAddress;
public class KLALBUtils {
public static Inet6Address uuidToIP(UUID uuid) {
@@ -34,15 +39,15 @@ public class KLALBUtils {
}
public static String bytesUnit(long v) {
if (v >= 1024L * 1024 * 1024 * 1024 * 1024) {
return String.format("%.1f", v / (1024.0 * 1024.0 * 1024.0 * 1024.0 * 1024.0)) + "PB";
return String.format("%.2f", v / (1024.0 * 1024.0 * 1024.0 * 1024.0 * 1024.0)) + "PB";
} else if (v >= 1024L * 1024 * 1024 * 1024) {
return String.format("%.1f", v / (1024.0 * 1024.0 * 1024.0 * 1024.0)) + "TB";
return String.format("%.2f", v / (1024.0 * 1024.0 * 1024.0 * 1024.0)) + "TB";
} else if (v >= 1024L * 1024 * 1024) {
return String.format("%.1f", v / (1024.0 * 1024.0 * 1024.0)) + "GB";
return String.format("%.2f", v / (1024.0 * 1024.0 * 1024.0)) + "GB";
} else if (v >= 1024L * 1024) {
return String.format("%.1f", v / (1024.0 * 1024.0)) + "MB";
return String.format("%.2f", v / (1024.0 * 1024.0)) + "MB";
} else if (v >= 1024L) {
return String.format("%.1f", v / (1024.0)) + "KB";
return String.format("%.2f", v / (1024.0)) + "KB";
} else {
return v + "B";
}
@@ -62,6 +67,24 @@ public class KLALBUtils {
return v+"B";
}
}
public static String defaultUnit(long v) {
if(v>=1024L*1024*1024*1024*1024) {
return format( v/(1024.0*1024.0*1024.0*1024.0*1024.0))+"P";
}else if(v>=1024L*1024*1024*1024) {
return format (v/(1024.0*1024.0*1024.0*1024.0))+"T";
}else if(v>=1024L*1024*1024) {
return format( v/(1024.0*1024.0*1024.0))+"G";
}else if(v>=1024L*1024) {
return format( v/(1024.0*1024.0))+"M";
}else if(v>=1024L) {
return format( v/(1024.0))+"K";
}else {
return Long.toString(v) ;
}
}
private static String format( double d) {
String fmt=String.format( "%.2f",d);
if(fmt.length()>4) {
@@ -92,4 +115,82 @@ public class KLALBUtils {
}
return -1;
}
public static Color getColorByLoadPercentage(float f) {
int r=0;
int g=255;
if(f<50f) {
r+=f/50f*255f;
}else {
r=255;
g-=(f-50f)/50f*255f;
}
if(r>255)
r=255;
if(r<0)
r=0;
if(g>255)
g=255;
if(g<0)
g=0;
Color col=new Color( r,g,0);
return col;
}
public static KLALBPacketLink createKLALBPacketLink(MultipurposeSocketAddress bindAddress, MultipurposeSocketAddress targetAddress)
throws IOException {
if (targetAddress.isStream()) {
if (targetAddress.supportNIO()) {
if (bindAddress != null) {
return new StreamChannelKLALBPacketLink(targetAddress
.connectSocketChannel(InetAddress.getByName(bindAddress.getHost()), bindAddress.getPort()));
} else {
return new StreamChannelKLALBPacketLink(targetAddress.connectSocketChannel());
}
} else {
if (bindAddress != null) {
return new StreamKLALBPacketLink(
targetAddress.connectSocket(InetAddress.getByName(bindAddress.getHost()), bindAddress.getPort()));
} else {
return new StreamKLALBPacketLink(targetAddress.connectSocket());
}
}
} else {
if (bindAddress != null) {
return new SplitedDatagramKLALBPacketLink(
targetAddress.connectDatagramSocket(InetAddress.getByName(bindAddress.getHost()), bindAddress.getPort()));
} else {
return new SplitedDatagramKLALBPacketLink(targetAddress.connectDatagramSocket());
}
}
}
public static KLALBPacketLink createKLALBPacketLink(MultipurposeSocketAddress bindAddress,
MultipurposeSocketAddress targetAddress, int timeout) throws UnknownHostException, IOException {
if (targetAddress.isStream()) {
if (targetAddress.supportNIO()) {
if (bindAddress != null) {
return new StreamChannelKLALBPacketLink(targetAddress
.connectSocketChannel(InetAddress.getByName(bindAddress.getHost()), bindAddress.getPort(),timeout));
} else {
return new StreamChannelKLALBPacketLink(targetAddress.connectSocketChannel(timeout));
}
} else {
if (bindAddress != null) {
return new StreamKLALBPacketLink(
targetAddress.connectSocket(InetAddress.getByName(bindAddress.getHost()), bindAddress.getPort(),timeout));
} else {
return new StreamKLALBPacketLink(targetAddress.connectSocket(timeout));
}
}
} else {
if (bindAddress != null) {
return new SplitedDatagramKLALBPacketLink(
targetAddress.connectDatagramSocket(InetAddress.getByName(bindAddress.getHost()), bindAddress.getPort()));
} else {
return new SplitedDatagramKLALBPacketLink(targetAddress.connectDatagramSocket());
}
}
}
}