use of com.tencent.wstt.gt.ui.model.TagTimeEntry in project GT by Tencent.
the class GTGWInternal method saveAllEnableGWData.
public static void saveAllEnableGWData(GWSaveEntry saveEntry) {
setLastSaveFolder(saveEntry.path3);
String now = GTUtils.getSaveDate();
saveEntry.setNow(now);
TagTimeEntry[] ttes = OpPerfBridge.getAllEnableProfilerData();
for (TagTimeEntry tte : ttes) {
if (null != tte && tte.getAlias().equals("SM")) {
LogUtils.writeGWDataForSM(saveEntry, tte);
} else {
LogUtils.writeGWData(saveEntry, tte);
}
}
LogUtils.writeGWDesc(saveEntry, ttes);
}
use of com.tencent.wstt.gt.ui.model.TagTimeEntry in project GT by Tencent.
the class LogTimeController method recordDigital.
/**
* 记录单点的性能数据(start和end这种成对的称为双点性能数据),也按tid区分全局的还是线程的
*/
public void recordDigital(long tid, String group, String tag, long[] datas, int funcId) {
if (!started) {
return;
}
if (null != group && null != tag) {
GroupTimeEntry groupEntry = groupMap.get(group);
if (null == groupEntry) {
groupEntry = new GroupTimeEntry(group);
lock.lock();
groupMap.put(group, groupEntry);
lock.unlock();
}
// 从Group中取出由tag, tid共同标示的统计对象(exKey无用)
TagTimeEntry staticsTagTimeEntry = groupEntry.getStaticsEntry(tag, tid);
if (null == staticsTagTimeEntry) {
staticsTagTimeEntry = new TagTimeEntry(groupEntry);
staticsTagTimeEntry.setName(tag);
staticsTagTimeEntry.setTid(tid);
staticsTagTimeEntry.setFunctionId(funcId);
staticsTagTimeEntry.initChildren(datas.length - 1);
groupEntry.addStaticsEntry(staticsTagTimeEntry);
}
if (Functions.PERF_DIGITAL_MULT == funcId || Functions.PERF_DIGITAL_MULT_MEM == funcId) {
TagTimeEntry[] subEntrys = staticsTagTimeEntry.getSubTagEntrys();
for (int i = 0; i < subEntrys.length; i++) {
TagTimeEntry subEntry = subEntrys[i];
subEntry.add(datas[i]);
}
// TODO 得记录一个维度的值,否则外面UI无法展示
staticsTagTimeEntry.add(datas[0]);
} else {
staticsTagTimeEntry.add(datas[0]);
}
}
}
use of com.tencent.wstt.gt.ui.model.TagTimeEntry in project GT by Tencent.
the class LogTimeController method endTime.
public long endTime(long tid, String group, String tag, int exKey, long end, int funcId) {
if (null != group && null != tag) {
GroupTimeEntry groupEntry = null;
TagTimeEntry tagEntry = null;
if (null == groupMap.get(group)) {
return -1;
}
groupEntry = groupMap.get(group);
if (null == groupEntry) {
return -1;
}
tagEntry = groupEntry.getThreadEntry(tag, tid, exKey);
if (null == tagEntry) {
return -1;
}
if (tagEntry.getLastStart() <= 0) {
return -1;
}
long reduce = end - tagEntry.getLastStart();
tagEntry.setLastStart(0);
if (started) {
// 在对应的统计对象中加入差值,注意统计值是不关注exKey的
TagTimeEntry staticsTagTimeEntry = groupEntry.getStaticsEntry(tag, tid);
staticsTagTimeEntry.add(reduce);
}
return reduce;
}
return -1;
}
use of com.tencent.wstt.gt.ui.model.TagTimeEntry in project GT by Tencent.
the class LogTimeController method getTagTimeEntry.
/**
* 给详情页返回数据源,要么返回全局的统计,要么返回区分线程的统计
* @param tid
* @param parentName
* @param name
* @return
*/
public TagTimeEntry getTagTimeEntry(long tid, String parentName, String name) {
GroupTimeEntry groupTimeEntry = groupMap.get(parentName);
TagTimeEntry tagTimeEntry = null;
if (null != groupTimeEntry) {
tagTimeEntry = groupTimeEntry.getStaticsEntry(name, tid);
}
return tagTimeEntry;
}
use of com.tencent.wstt.gt.ui.model.TagTimeEntry in project GT by Tencent.
the class LogTimeController method startTime.
/**
* 规定不区分线程的tid为0,被测程序的线程号为正数,GT控制台的线程号为负数
*/
public void startTime(long tid, String group, String tag, int exKey, long start, int funcId) {
if (null != group && null != tag) {
GroupTimeEntry groupEntry = groupMap.get(group);
if (null == groupEntry) {
groupEntry = new GroupTimeEntry(group);
lock.lock();
groupMap.put(group, groupEntry);
lock.unlock();
}
// 从Group中取出由tag, tid, exKey共同标示的TagTimeEntry对象
TagTimeEntry tagEntry = groupEntry.getThreadEntry(tag, tid, exKey);
if (null == tagEntry) {
tagEntry = new TagTimeEntry(groupEntry);
tagEntry.setName(tag);
tagEntry.setTid(tid);
tagEntry.setExkey(exKey);
/*
* funcId用的是PERF_START_TIME_GLOBAL或PERF_START_DIGITAL_GLOBAL
* 对于后面的使用只是保证UI精度,不会做其他依赖funcId的逻辑计算
*/
tagEntry.setFunctionId(funcId);
groupEntry.addEntry(tagEntry);
}
tagEntry.setLastStart(start);
}
}
Aggregations