Esempio n. 1
0
        /// <summary>
        /// 結果書き出し
        /// </summary>
        protected override string GetResultText()
        {
            CsvStringGenerator csvStringGenerator = new CsvStringGenerator();

            csvStringGenerator.AppendColumn("name").AppendColumn("sum(msec)").AppendColumn("call").AppendColumn("min(msec)").AppendColumn("max(msec)").NextRow();

            var sampleDataList = new List <WorkerThreadSample>(samples.Values);

            sampleDataList.Sort((a, b) =>
            {
                if (a.sumMsec > b.sumMsec)
                {
                    return(-1);
                }
                else if (a.sumMsec < b.sumMsec)
                {
                    return(1);
                }
                return(0);
            });
            foreach (var sampleData in sampleDataList)
            {
                csvStringGenerator.AppendColumn(sampleData.sampleName).
                AppendColumn(sampleData.sumMsec).
                AppendColumn(sampleData.callNum).
                AppendColumn(sampleData.minMSec).
                AppendColumn(sampleData.maxMsec);
                csvStringGenerator.NextRow();
            }

            return(csvStringGenerator.ToString());
        }
Esempio n. 2
0
        private string GetCallStackInfo(ProfilerFrameData frameData, ProfilerSample profilerSample)
        {
            if (profilerSample == null)
            {
                return("");
            }
            var callStackInfo = profilerSample.callStackInfo;

            if (callStackInfo == null)
            {
                return("");
            }
            stringBuilder.Length = 0;

            int  length       = callStackInfo.stack.Length;
            bool isAlreadyAdd = false;

            for (int i = length - 1; i >= 0; --i)
            {
                var info = frameData.FindJitInfoFromAddr(callStackInfo.stack[i]);
                if (info == null)
                {
                    continue;
                }
                if (isAlreadyAdd)
                {
                    stringBuilder.Append("->");
                }
                stringBuilder.Append("[");
                CsvStringGenerator.AppendAddrStr(stringBuilder, info.codeAddr, 16).Append("]");
                stringBuilder.Append(info.name);
                isAlreadyAdd = true;
            }
            return(stringBuilder.ToString());
        }
Esempio n. 3
0
 public void AppendToStringBuilder(CsvStringGenerator csvStringGenerator)
 {
     csvStringGenerator.AppendColumn(renderTime);
     csvStringGenerator.AppendColumn(updateDepth);
     csvStringGenerator.AppendColumn(opaque);
     csvStringGenerator.AppendColumn(transparent);
     csvStringGenerator.AppendColumn(imageEffect);
 }
        /// <summary>
        /// 結果書き出し
        /// </summary>
        protected override string GetResultText()
        {
            CsvStringGenerator csvStringGenerator = new CsvStringGenerator();

            csvStringGenerator.AppendColumn("frameIdx");


            foreach (var category in System.Enum.GetValues(typeof(Category)))
            {
                csvStringGenerator.AppendColumn(category.ToString() + "(ms)");
            }
            csvStringGenerator.AppendColumn("callNum");
            foreach (var category in System.Enum.GetValues(typeof(Category)))
            {
                csvStringGenerator.AppendColumn(category.ToString() + "(calls)");
            }

            csvStringGenerator.NextRow();
            foreach (var gpuFrame in frameGpuTimes)
            {
                if (gpuFrame.gpuTimeByCategory == null)
                {
                    continue;
                }
                csvStringGenerator.AppendColumn(gpuFrame.frameIdx);

                foreach (var category in System.Enum.GetValues(typeof(Category)))
                {
                    GpuTimeInfo val;
                    if (gpuFrame.gpuTimeByCategory.TryGetValue((int)category, out val))
                    {
                        csvStringGenerator.AppendColumn((float)val.time / 1000.0f);
                    }
                    else
                    {
                        csvStringGenerator.AppendColumn(0);
                    }
                }
                csvStringGenerator.AppendColumn("");

                foreach (var category in System.Enum.GetValues(typeof(Category)))
                {
                    GpuTimeInfo val;
                    if (gpuFrame.gpuTimeByCategory.TryGetValue((int)category, out val))
                    {
                        csvStringGenerator.AppendColumn(val.count);
                    }
                    else
                    {
                        csvStringGenerator.AppendColumn(0);
                    }
                }

                csvStringGenerator.NextRow();
            }
            return(csvStringGenerator.ToString());
        }
Esempio n. 5
0
        /// <summary>
        /// 結果書き出し
        /// </summary>
        protected override string GetResultText()
        {
            CsvStringGenerator csvStringGenerator = new CsvStringGenerator();

            csvStringGenerator.AppendColumn("frameIdx");

            for (int i = 0; i < GPUTime.SECTION_NUM; ++i)
            {
                csvStringGenerator.AppendColumn(((GPUTime.GpuSection)i).ToString() + "(ms)");
            }
            csvStringGenerator.AppendColumn("callNum");
            for (int i = 0; i < GPUTime.SECTION_NUM; ++i)
            {
                csvStringGenerator.AppendColumn(((GPUTime.GpuSection)i).ToString() + "(calls)");
            }

            csvStringGenerator.NextRow();
            foreach (var gpuFrame in frameGpuTimes)
            {
                if (gpuFrame.gpuTimeByCategory == null)
                {
                    continue;
                }
                csvStringGenerator.AppendColumn(gpuFrame.frameIdx);

                for (int i = 0; i < GPUTime.SECTION_NUM; ++i)
                {
                    GpuTimeInfo val;
                    if (gpuFrame.gpuTimeByCategory.TryGetValue(i, out val))
                    {
                        csvStringGenerator.AppendColumn((float)val.time / 1000.0f);
                    }
                    else
                    {
                        csvStringGenerator.AppendColumn(0);
                    }
                }
                csvStringGenerator.AppendColumn("");

                for (int i = 0; i < GPUTime.SECTION_NUM; ++i)
                {
                    GpuTimeInfo val;
                    if (gpuFrame.gpuTimeByCategory.TryGetValue(i, out val))
                    {
                        csvStringGenerator.AppendColumn(val.count);
                    }
                    else
                    {
                        csvStringGenerator.AppendColumn(0);
                    }
                }

                csvStringGenerator.NextRow();
            }
            return(csvStringGenerator.ToString());
        }
 private void AppendHeaderToStringBuilder(CsvStringGenerator csvStringGenerator)
 {
     csvStringGenerator.AppendColumn("Address");
     // Total
     csvStringGenerator.AppendColumn("Code Size");
     csvStringGenerator.AppendColumn("FunctionName");
     csvStringGenerator.AppendColumn("SourceFile");
     csvStringGenerator.AppendColumn("SourceLine");
     csvStringGenerator.NextRow();
 }
        /// <summary>
        /// 結果書き出し
        /// </summary>
        protected override string GetResultText()
        {
            CsvStringGenerator csvStringGenerator = new CsvStringGenerator();

            AppendHeaderToStringBuilder(csvStringGenerator);

            for (int i = 0; i < memoryStatsList.Count; ++i)
            {
                MemoryStats memoryStats = memoryStatsList[i];
                csvStringGenerator.AppendColumn(frameIdxList[i]);
                csvStringGenerator.AppendColumn("");
                // Used Memory
                csvStringGenerator.AppendColumn(memoryStats.bytesUsedTotal);
                csvStringGenerator.AppendColumn(memoryStats.bytesUsedUnity);
                csvStringGenerator.AppendColumn(memoryStats.bytesUsedMono);
                csvStringGenerator.AppendColumn(memoryStats.bytesUsedGFX);
                csvStringGenerator.AppendColumn(memoryStats.bytesUsedFMOD);
                csvStringGenerator.AppendColumn(memoryStats.bytesUsedVideo);
                csvStringGenerator.AppendColumn(memoryStats.bytesUsedProfiler);
                csvStringGenerator.AppendColumn("");

                // Reserved Memory
                csvStringGenerator.AppendColumn(memoryStats.bytesReservedTotal);
                csvStringGenerator.AppendColumn(memoryStats.bytesReservedUnity);
                csvStringGenerator.AppendColumn(memoryStats.bytesReservedMono);
                csvStringGenerator.AppendColumn(memoryStats.bytesReservedFMOD);
                csvStringGenerator.AppendColumn(memoryStats.bytesReservedVideo);
                csvStringGenerator.AppendColumn(memoryStats.bytesReservedProfiler);
                csvStringGenerator.AppendColumn("");

                // by Assets
                csvStringGenerator.AppendColumn(memoryStats.textureCount);
                csvStringGenerator.AppendColumn(memoryStats.textureBytes);
                csvStringGenerator.AppendColumn(memoryStats.meshCount);
                csvStringGenerator.AppendColumn(memoryStats.meshBytes);
                csvStringGenerator.AppendColumn(memoryStats.materialCount);
                csvStringGenerator.AppendColumn(memoryStats.materialBytes);
                csvStringGenerator.AppendColumn(memoryStats.audioCount);
                csvStringGenerator.AppendColumn(memoryStats.audioBytes);
                csvStringGenerator.AppendColumn(memoryStats.assetCount);
                csvStringGenerator.AppendColumn(memoryStats.gameObjectCount);
                csvStringGenerator.AppendColumn(memoryStats.sceneObjectCount);
                csvStringGenerator.AppendColumn(memoryStats.totalObjectsCount);
                csvStringGenerator.AppendColumn("");

                // GC
                csvStringGenerator.AppendColumn(memoryStats.frameGCAllocCount);
                csvStringGenerator.AppendColumn(memoryStats.frameGCAllocBytes);
                csvStringGenerator.NextRow();
            }

            return(csvStringGenerator.ToString());
        }
 private void AppendHeaderToStringBuilder(CsvStringGenerator csvStringGenerator)
 {
     csvStringGenerator.AppendColumn("frameIdx");
     csvStringGenerator.AppendColumn("file");
     csvStringGenerator.AppendColumn("event");
     csvStringGenerator.AppendColumn("thread");
     csvStringGenerator.AppendColumn("param");
     csvStringGenerator.AppendColumn("size");
     csvStringGenerator.AppendColumn("seekOffset");
     csvStringGenerator.AppendColumn("execTime");
     csvStringGenerator.AppendColumn("fullPath");
     csvStringGenerator.NextRow();
 }
Esempio n. 9
0
 private void AppendHeaderToStringBuilder(CsvStringGenerator csvStringGenerator)
 {
     csvStringGenerator.AppendColumn("thread");
     // Total
     csvStringGenerator.AppendColumn("SampleName");
     csvStringGenerator.AppendColumn("FullName");
     csvStringGenerator.AppendColumn("calls");
     csvStringGenerator.AppendColumn("all(byte)");
     csvStringGenerator.AppendColumn("average(byte)");
     csvStringGenerator.AppendColumn("min(byte)");
     csvStringGenerator.AppendColumn("max(byte)");
     csvStringGenerator.NextRow();
 }
Esempio n. 10
0
            public void AppendCsv(CsvStringGenerator csvStringGenerator, List <string> categoriesStr)
            {
                foreach (var category in categoriesStr)
                {
                    float val;

                    if (!frameData.TryGetValue(category, out val))
                    {
                        val = 0.0f;
                    }
                    csvStringGenerator.AppendColumn(val);
                }
            }
 private void AppendHeaderToStringBuilder(CsvStringGenerator csvStringGenerator)
 {
     csvStringGenerator.AppendColumn("frameIdx");
     // Total
     csvStringGenerator.AppendColumn("Total");
     csvStringGenerator.AppendColumn("setPassCalls");
     csvStringGenerator.AppendColumn("drawCalls");
     csvStringGenerator.AppendColumn("batches");
     csvStringGenerator.AppendColumn("triangles");
     csvStringGenerator.AppendColumn("vertices");
     // DynamicBatching
     csvStringGenerator.AppendColumn("DynamicBatching");
     csvStringGenerator.AppendColumn("dynamicBatchedDrawCalls");
     csvStringGenerator.AppendColumn("dynamicBatchedTriangles");
     csvStringGenerator.AppendColumn("dynamicBatchedTriangles");
     csvStringGenerator.AppendColumn("dynamicBatchedVertices");
     // static batching
     csvStringGenerator.AppendColumn("StaticBatching");
     csvStringGenerator.AppendColumn("staticBatchedDrawCalls");
     csvStringGenerator.AppendColumn("staticBatchedTriangles");
     csvStringGenerator.AppendColumn("staticBatchedTriangles");
     csvStringGenerator.AppendColumn("staticBatchedVertices");
     // instancing
     csvStringGenerator.AppendColumn("Instancing");
     csvStringGenerator.AppendColumn("hasInstancing");
     csvStringGenerator.AppendColumn("instancedBatchedDrawCalls");
     csvStringGenerator.AppendColumn("instancedBatches");
     csvStringGenerator.AppendColumn("instancedTriangles");
     csvStringGenerator.AppendColumn("instancedVertices");
     //screen Info
     csvStringGenerator.AppendColumn("ScreenInfo");
     csvStringGenerator.AppendColumn("screenWidth");
     csvStringGenerator.AppendColumn("screenHeight");
     csvStringGenerator.AppendColumn("screenBytes");
     // RenderTexture Info
     csvStringGenerator.AppendColumn("RenderTextureInfo");
     csvStringGenerator.AppendColumn("renderTextureCount");
     csvStringGenerator.AppendColumn("renderTextureBytes");
     csvStringGenerator.AppendColumn("renderTextureStateChanges");
     // SkinnedMesh
     csvStringGenerator.AppendColumn("SkinnedMesh");
     csvStringGenerator.AppendColumn("visibleSkinnedMeshes");
     // etc...
     csvStringGenerator.AppendColumn("etc");
     csvStringGenerator.AppendColumn("totalAvailableVRamMBytes");
     csvStringGenerator.AppendColumn("vboTotal");
     csvStringGenerator.AppendColumn("vboUploads");
     csvStringGenerator.AppendColumn("ibUploads");
     csvStringGenerator.AppendColumn("shadowCasters");
     csvStringGenerator.NextRow();
 }
Esempio n. 12
0
            public void AppendToCsvGenerator(CsvStringGenerator csvStringGenerator)
            {
                csvStringGenerator.AppendColumn(frameIdx);
                csvStringGenerator.AppendColumn(processCommandsTime);
                csvStringGenerator.AppendColumn(waitForCommandsTime);
                csvStringGenerator.AppendColumn(scheduleGeometryJobTime);
                csvStringGenerator.AppendColumn(scheduleGeometryJobNum);
                csvStringGenerator.AppendColumn(presentFrameTime);
                csvStringGenerator.AppendColumn(guiRepaint);
                csvStringGenerator.AppendColumn(cameraRenders.Count);

                foreach (var cameraRender in cameraRenders)
                {
                    csvStringGenerator.AppendColumn("");
                    cameraRender.AppendToStringBuilder(csvStringGenerator);
                }
            }
        private void AppendHeaderToStringBuilder(CsvStringGenerator csvStringGenerator)
        {
            csvStringGenerator.AppendColumn("frameIdx");
            csvStringGenerator.AppendColumn("UsedMemory");
            // Used Memory
            csvStringGenerator.AppendColumn("bytesUsedTotal");
            csvStringGenerator.AppendColumn("bytesUsedUnity");
            csvStringGenerator.AppendColumn("bytesUsedMono");
            csvStringGenerator.AppendColumn("bytesUsedGFX");
            csvStringGenerator.AppendColumn("bytesUsedFMOD");
            csvStringGenerator.AppendColumn("bytesUsedVideo");
            csvStringGenerator.AppendColumn("bytesUsedProfiler");

            csvStringGenerator.AppendColumn("ReservedMemory");
            // Reserved Memory
            csvStringGenerator.AppendColumn("bytesReservedTotal");
            csvStringGenerator.AppendColumn("bytesReservedUnity");
            csvStringGenerator.AppendColumn("bytesReservedMono");
            csvStringGenerator.AppendColumn("bytesReservedFMOD");
            csvStringGenerator.AppendColumn("bytesReservedVideo");
            csvStringGenerator.AppendColumn("bytesReservedProfiler");

            csvStringGenerator.AppendColumn("AssetUsage");
            // by Assets
            csvStringGenerator.AppendColumn("textureCount");
            csvStringGenerator.AppendColumn("textureBytes");
            csvStringGenerator.AppendColumn("meshCount");
            csvStringGenerator.AppendColumn("meshBytes");
            csvStringGenerator.AppendColumn("meshCount");
            csvStringGenerator.AppendColumn("meshBytes");
            csvStringGenerator.AppendColumn("materialCount");
            csvStringGenerator.AppendColumn("materialBytes");
            csvStringGenerator.AppendColumn("audioCount");
            csvStringGenerator.AppendColumn("audioBytes");
            csvStringGenerator.AppendColumn("assetCount");
            csvStringGenerator.AppendColumn("gameObjectCount");
            csvStringGenerator.AppendColumn("sceneObjectCount");
            csvStringGenerator.AppendColumn("totalObjectsCount");
            csvStringGenerator.AppendColumn("GC");

            // GC
            csvStringGenerator.AppendColumn("frameGCAllocCount");
            csvStringGenerator.AppendColumn("frameGCAllocBytes");
            csvStringGenerator.NextRow();
        }
Esempio n. 14
0
        /// <summary>
        /// 結果書き出し
        /// </summary>
        protected override string GetResultText()
        {
            CsvStringGenerator csvStringGenerator = new CsvStringGenerator();
            int frameNum           = 0;
            var threadViewDataList = new List <ThreadViewData>(viewData.Values);

            foreach (var data in threadViewDataList)
            {
                if (data.threadName == FrameWholeDataSpecialKey)
                {
                    csvStringGenerator.AppendColumn(data.threadName).AppendColumn("");
                }
                else
                {
                    csvStringGenerator.AppendColumn(data.threadName + "(msec)");
                    csvStringGenerator.AppendColumn("idle(msec)");
                    csvStringGenerator.AppendColumn("working(msec)");
                    csvStringGenerator.AppendColumn("rootBlock");
                    csvStringGenerator.AppendColumn("idleBlock").AppendColumn("");
                }
                frameNum = ProfilerLogUtil.Max(data.maxFrame, frameNum);
            }
            csvStringGenerator.NextRow();

            for (int i = 0; i < frameNum; ++i)
            {
                foreach (var data in threadViewDataList)
                {
                    int   totalCnt, idleCnt;
                    float total, idle;
                    data.GetMSecData(i, out total, out idle, out totalCnt, out idleCnt);
                    if (data.threadName == FrameWholeDataSpecialKey)
                    {
                        csvStringGenerator.AppendColumn(total).AppendColumn("");
                    }
                    else
                    {
                        csvStringGenerator.AppendColumn(total).AppendColumn(idle).AppendColumn(total - idle);
                        csvStringGenerator.AppendColumn(totalCnt).AppendColumn(idleCnt).AppendColumn("");
                    }
                }
                csvStringGenerator.NextRow();
            }
            return(csvStringGenerator.ToString());
        }
        /// <summary>
        /// 結果書き出し
        /// </summary>
        protected override string GetResultText()
        {
            CsvStringGenerator csvStringGenerator = new CsvStringGenerator();

            csvStringGenerator.AppendColumn("name").AppendColumn("fullname").AppendColumn("category").AppendColumn("callNum").
            AppendColumn("self").AppendColumn("sum(msec)").AppendColumn("perFrame(msec)").AppendColumn("min(msec)").AppendColumn("max(msec)").
            AppendColumn("total").AppendColumn("sum(msec)").AppendColumn("perFrame(msec)").AppendColumn("min(msec)").AppendColumn("max(msec)").
            NextRow();
            var sampleDataList = new List <SampleData>(samples.Values);

            sampleDataList.Sort((a, b) =>
            {
                if (a.totalSelfMsec > b.totalSelfMsec)
                {
                    return(-1);
                }
                else if (a.totalSelfMsec < b.totalSelfMsec)
                {
                    return(1);
                }
                return(0);
            });
            foreach (var sampleData in sampleDataList)
            {
                csvStringGenerator.AppendColumn(sampleData.sampleName).
                AppendColumn(sampleData.fullName).
                AppendColumn(sampleData.categoryName).
                AppendColumn(sampleData.callNum).AppendColumn("");

                csvStringGenerator.AppendColumn(sampleData.totalSelfMsec).
                AppendColumn(sampleData.totalSelfMsec / frameNum).
                AppendColumn(sampleData.selfMinMSec).
                AppendColumn(sampleData.selfMaxMsec).AppendColumn("");


                csvStringGenerator.AppendColumn(sampleData.totalExecMsec).
                AppendColumn(sampleData.totalExecMsec / frameNum).
                AppendColumn(sampleData.execMinMSec).
                AppendColumn(sampleData.execMaxMsec);
                csvStringGenerator.NextRow();
            }

            return(csvStringGenerator.ToString());
        }
Esempio n. 16
0
        /// <summary>
        /// 結果書き出し
        /// </summary>
        protected override string GetResultText()
        {
            CsvStringGenerator csvStringGenerator = new CsvStringGenerator();

            AppendHeaderToStringBuilder(csvStringGenerator);
            foreach (var kvs in gcDitionary)
            {
                csvStringGenerator.AppendColumn(kvs.Key.threadName);
                csvStringGenerator.AppendColumn(kvs.Key.methodName);
                csvStringGenerator.AppendColumn(kvs.Key.fullMethodName);
                csvStringGenerator.AppendColumn(kvs.Value.allocNum);
                csvStringGenerator.AppendColumn(kvs.Value.allocAll);
                csvStringGenerator.AppendColumn(kvs.Value.allocAll / kvs.Value.allocNum);
                csvStringGenerator.AppendColumn(kvs.Value.allocMin);
                csvStringGenerator.AppendColumn(kvs.Value.allocMax);
                csvStringGenerator.NextRow();
            }
            return(csvStringGenerator.ToString());
        }
        /// <summary>
        /// 結果書き出し
        /// </summary>
        protected override string GetResultText()
        {
            CsvStringGenerator csvStringGenerator = new CsvStringGenerator();

            AppendHeaderToStringBuilder(csvStringGenerator);

            fileEvents.Sort((a, b) =>
            {
                if (a.startTime > b.startTime)
                {
                    return(1);
                }
                else if (a.startTime < b.startTime)
                {
                    return(-1);
                }
                return(0);
            });

            foreach (var evt in fileEvents)
            {
                int filePathIdx = 0;
                int length      = 0;
                if (evt.file != null)
                {
                    filePathIdx = evt.file.LastIndexOf('/') + 1;
                    length      = evt.file.Length;
                }

                csvStringGenerator.AppendColumn(evt.frameIdx);
                csvStringGenerator.AppendColumn(evt.file, filePathIdx, length - filePathIdx);
                csvStringGenerator.AppendColumn(evt.eventStr);
                csvStringGenerator.AppendColumn(evt.thread);
                csvStringGenerator.AppendColumn(evt.param);
                csvStringGenerator.AppendColumn(evt.size);
                csvStringGenerator.AppendColumn(evt.seekOffset);
                csvStringGenerator.AppendColumn(evt.tm);
                csvStringGenerator.AppendColumn(evt.file);
                csvStringGenerator.NextRow();
            }

            return(csvStringGenerator.ToString());
        }
Esempio n. 18
0
        /// <summary>
        /// 結果書き出し
        /// </summary>
        protected override string GetResultText()
        {
            CsvStringGenerator csvStringGenerator = new CsvStringGenerator();

            csvStringGenerator.AppendColumn("frameIdx");
            foreach (var str in categoriesStr)
            {
                csvStringGenerator.AppendColumn(str + "(msec)");
            }
            csvStringGenerator.NextRow();

            foreach (var frame in frames)
            {
                csvStringGenerator.AppendColumn(frame.frameIdx);
                frame.AppendCsv(csvStringGenerator, this.categoriesStr);
                csvStringGenerator.NextRow();
            }

            return(csvStringGenerator.ToString());
        }
Esempio n. 19
0
        /// <summary>
        /// 結果書き出し
        /// </summary>
        protected override string GetResultText()
        {
            CsvStringGenerator csvStringGenerator = new CsvStringGenerator();

            csvStringGenerator.AppendColumn("frameIdx").AppendColumn("processCommandsTime").
            AppendColumn("waitForCommandsTime").AppendColumn("scheduleGeometryJobTime").AppendColumn("scheduleGeometryJobNum").AppendColumn("presentFrameTime").AppendColumn("guiRepaint").AppendColumn("cameraRenders");

            for (int i = 0; i < maxCameraNum; ++i)
            {
                csvStringGenerator.AppendColumn("Camera" + i);
                csvStringGenerator.AppendColumn("renderTime").AppendColumn("updateDepth").AppendColumn("opaque").AppendColumn("transparent").AppendColumn("imageEffect");
            }
            csvStringGenerator.NextRow();

            foreach (var frameRenderingData in this.frameRenderingDatas)
            {
                frameRenderingData.AppendToCsvGenerator(csvStringGenerator);
                csvStringGenerator.NextRow();
            }

            return(csvStringGenerator.ToString());
        }
        /// <summary>
        /// 結果書き出し
        /// </summary>
        protected override string GetResultText()
        {
            CsvStringGenerator csvStringGenerator = new CsvStringGenerator();

            AppendHeaderToStringBuilder(csvStringGenerator);
            List <JitInfo> sortedJitInfo = new List <JitInfo>(this.jitInfoDict.Values);

            sortedJitInfo.Sort(new JitInfo.CompareByAddr());

            foreach (var jitInfo in sortedJitInfo)
            {
                string name           = jitInfo.name;
                string sourceFileName = jitInfo.sourceFileName;
                csvStringGenerator.AppendColumnAsAddr(jitInfo.codeAddr);
                csvStringGenerator.AppendColumn(jitInfo.size);
                csvStringGenerator.AppendColumn(name);
                csvStringGenerator.AppendColumn(sourceFileName);
                csvStringGenerator.AppendColumn(jitInfo.sourceFileLine);
                csvStringGenerator.NextRow();
            }

            return(csvStringGenerator.ToString());
        }
Esempio n. 21
0
        /// <summary>
        /// 結果書き出し
        /// </summary>
        protected override string GetResultText()
        {
            CsvStringGenerator csvStringGenerator = new CsvStringGenerator();

            csvStringGenerator.AppendColumn("frameIdx");
            csvStringGenerator.AppendColumn("Shader")
            .AppendColumn("exec(ms)").AppendColumn("isWarmupCall");
            if (this.hasPassStageKeywordsInfo)
            {
                csvStringGenerator.AppendColumn("pass")
                .AppendColumn("stage")
                .AppendColumn("keyword");
            }
            csvStringGenerator.NextRow();
            foreach (var compileInfo in this.compileInfos)
            {
                if (compileInfo == null)
                {
                    continue;
                }

                csvStringGenerator.AppendColumn(compileInfo.frameIdx)
                .AppendColumn(compileInfo.shader)
                .AppendColumn(compileInfo.msec)
                .AppendColumn(compileInfo.callFromWarmup);
                if (this.hasPassStageKeywordsInfo)
                {
                    csvStringGenerator.AppendColumn(compileInfo.pass).
                    AppendColumn(compileInfo.stage).
                    AppendColumn(compileInfo.keywords);
                }
                csvStringGenerator.NextRow();
            }

            return(csvStringGenerator.ToString());
        }
        /// <summary>
        /// 結果書き出し
        /// </summary>
        protected override string GetResultText()
        {
            CsvStringGenerator csvStringGenerator = new CsvStringGenerator();

            AppendHeaderToStringBuilder(csvStringGenerator);

            for (int i = 0; i < drawStatsList.Count; ++i)
            {
                DrawStats drawStats = drawStatsList[i];
                csvStringGenerator.AppendColumn(frameIdxList[i]);

                csvStringGenerator.AppendColumn("");
                // Total
                csvStringGenerator.AppendColumn(drawStats.setPassCalls);
                csvStringGenerator.AppendColumn(drawStats.drawCalls);
                csvStringGenerator.AppendColumn(drawStats.batches);
                csvStringGenerator.AppendColumn(drawStats.triangles);
                csvStringGenerator.AppendColumn(drawStats.vertices);
                csvStringGenerator.AppendColumn("");
                // DynamicBatching
                csvStringGenerator.AppendColumn(drawStats.dynamicBatchedDrawCalls);
                csvStringGenerator.AppendColumn(drawStats.dynamicBatchedTriangles);
                csvStringGenerator.AppendColumn(drawStats.dynamicBatchedTriangles);
                csvStringGenerator.AppendColumn(drawStats.dynamicBatchedVertices);
                csvStringGenerator.AppendColumn("");
                // static batching
                csvStringGenerator.AppendColumn(drawStats.staticBatchedDrawCalls);
                csvStringGenerator.AppendColumn(drawStats.staticBatchedTriangles);
                csvStringGenerator.AppendColumn(drawStats.staticBatchedTriangles);
                csvStringGenerator.AppendColumn(drawStats.staticBatchedVertices);
                // instancing
                csvStringGenerator.AppendColumn("");
                csvStringGenerator.AppendColumn(drawStats.hasInstancing);
                csvStringGenerator.AppendColumn(drawStats.instancedBatchedDrawCalls);
                csvStringGenerator.AppendColumn(drawStats.instancedBatches);
                csvStringGenerator.AppendColumn(drawStats.instancedTriangles);
                csvStringGenerator.AppendColumn(drawStats.instancedVertices);
                //screen Info
                csvStringGenerator.AppendColumn("");
                csvStringGenerator.AppendColumn(drawStats.screenWidth);
                csvStringGenerator.AppendColumn(drawStats.screenHeight);
                csvStringGenerator.AppendColumn(drawStats.screenBytes);
                // RenderTexture Info
                csvStringGenerator.AppendColumn("");
                csvStringGenerator.AppendColumn(drawStats.renderTextureCount);
                csvStringGenerator.AppendColumn(drawStats.renderTextureBytes);
                csvStringGenerator.AppendColumn(drawStats.renderTextureStateChanges);
                // SkinnedMesh
                csvStringGenerator.AppendColumn("");
                csvStringGenerator.AppendColumn(drawStats.visibleSkinnedMeshes);
                // etc...
                csvStringGenerator.AppendColumn("");
                csvStringGenerator.AppendColumn(drawStats.totalAvailableVRamMBytes);
                csvStringGenerator.AppendColumn(drawStats.vboTotal);
                csvStringGenerator.AppendColumn(drawStats.vboUploads);
                csvStringGenerator.AppendColumn(drawStats.ibUploads);
                csvStringGenerator.AppendColumn(drawStats.shadowCasters);
                csvStringGenerator.NextRow();
            }

            return(csvStringGenerator.ToString());
        }