优化代码,性能暴涨

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
+2 -2
View File
@@ -104,11 +104,11 @@ public class Debuger extends Thread {
for(int d=0;d<tmp.size();d++){
Entry<List<StackTraceElement>, Object[]>elements=tmp.get(d);
if(((Thread)(elements.getValue()[1])).getName().startsWith("SocketBridge A->B")){
/*if(((Thread)(elements.getValue()[1])).getName().startsWith("SocketBridge A->B")){
}else{
continue;
}
}*/
List<StackTraceElement> k=elements.getKey();
StringBuilder sb=new StringBuilder();
for(int d2=0;d2<k.size();d2++){
+63 -5
View File
@@ -3,29 +3,87 @@ package org.kne.debug;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class TimeDebugger {
private static final ExecutorService exct=Executors.newSingleThreadExecutor();
Map<String,Long> l=new LinkedHashMap<String,Long>();
private Map<String,Long> timeMap=new LinkedHashMap<String,Long>();
private Lock timeLock=new ReentrantLock();
long tmp=-1;
public void putTime(String name){
timeLock.lock();
try{
long v=System.nanoTime();
if(tmp==-1){
l.put(name, 0l);
timeMap.put(name, 0l);
}else{
l.put(name, v-tmp);
timeMap.put(name, v-tmp);
}
tmp=v;
}finally {
timeLock.unlock();
}
}
public Map<String, Long> getTimeMap() {
return timeMap;
}
public void print(){
exct.execute(()->{
System.err.println(l+"(ns)");
timeLock.lock();
try{
StringBuilder sbdr=new StringBuilder();
sbdr.append('{');
for (Iterator<Entry<String, Long>> iterator = timeMap.entrySet().iterator(); iterator.hasNext();) {
Entry<String, Long> type = (Entry<String, Long>) iterator.next();
sbdr.append(type.getKey()).append('=').append(type.getValue());
if(iterator.hasNext()) {
sbdr.append(',');
}
}
sbdr.append("}(ns)");
System.out.println(sbdr.toString());
}finally {
timeLock.unlock();
}
});
}
public void printWithTimeFilter(long nanos){
exct.execute(()->{
boolean b=false;
timeLock.lock();
try{
StringBuilder sbdr=new StringBuilder();
sbdr.append('{');
for (Iterator<Entry<String, Long>> iterator = timeMap.entrySet().iterator(); iterator.hasNext();) {
Entry<String, Long> type = (Entry<String, Long>) iterator.next();
if(type.getValue()>=nanos) {
b=true;
}
sbdr.append(type.getKey()).append('=').append(type.getValue());
if(iterator.hasNext()) {
sbdr.append(',');
}
}
sbdr.append("}(ns)");
if(b)
System.out.println(sbdr.toString());
}finally {
timeLock.unlock();
}
});
}
}