Search in sources :

Example 26 with TagTimeEntry

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);
}
Also used : TagTimeEntry(com.tencent.wstt.gt.ui.model.TagTimeEntry)

Example 27 with TagTimeEntry

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]);
        }
    }
}
Also used : TagTimeEntry(com.tencent.wstt.gt.ui.model.TagTimeEntry) GroupTimeEntry(com.tencent.wstt.gt.ui.model.GroupTimeEntry)

Example 28 with TagTimeEntry

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;
}
Also used : TagTimeEntry(com.tencent.wstt.gt.ui.model.TagTimeEntry) GroupTimeEntry(com.tencent.wstt.gt.ui.model.GroupTimeEntry)

Example 29 with TagTimeEntry

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;
}
Also used : TagTimeEntry(com.tencent.wstt.gt.ui.model.TagTimeEntry) GroupTimeEntry(com.tencent.wstt.gt.ui.model.GroupTimeEntry)

Example 30 with 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);
    }
}
Also used : TagTimeEntry(com.tencent.wstt.gt.ui.model.TagTimeEntry) GroupTimeEntry(com.tencent.wstt.gt.ui.model.GroupTimeEntry)

Aggregations

TagTimeEntry (com.tencent.wstt.gt.ui.model.TagTimeEntry)35 GroupTimeEntry (com.tencent.wstt.gt.ui.model.GroupTimeEntry)11 TimeEntry (com.tencent.wstt.gt.ui.model.TimeEntry)5 File (java.io.File)5 FileWriter (java.io.FileWriter)5 IOException (java.io.IOException)5 Builder (android.app.AlertDialog.Builder)4 DialogInterface (android.content.DialogInterface)4 Intent (android.content.Intent)4 View (android.view.View)4 TextView (android.widget.TextView)4 ArrayList (java.util.ArrayList)4 Bundle (android.os.Bundle)3 OnClickListener (android.view.View.OnClickListener)3 ImageButton (android.widget.ImageButton)3 ImageView (android.widget.ImageView)3 LinearLayout (android.widget.LinearLayout)3 RelativeLayout (android.widget.RelativeLayout)3 OutPara (com.tencent.wstt.gt.OutPara)3 GWSaveEntry (com.tencent.wstt.gt.log.GWSaveEntry)3