UnityでC#を用いて処理時間を計測しCSVに出力するコードを作成しています.
処理内容は特に今はこだわっていなため
cubeを回転させ,10000万回実行したら停止するようになっています.
またCSVは"yyyyMMddHHmmss"でAssetsに保存されるようにしてあります.
現在処理時間の計測とCSVへの出力がともに一応はできているのですが,
CSVへの出力が1回目の処理の値しか書き出されません.
![]
実現したいこととしてはコンソールに示されている(debugしている),
処理時間全てをCSVに書き出すことです.
こちらの値をCSVに保存したいです.
C#
1using System.Collections; 2using System.Collections.Generic; 3using System.Text; 4using UnityEngine; 5using UnityEngine.UI; 6using System.IO; 7using System; 8 9public class StopWatch_test : MonoBehaviour { 10 11 12 //Stopwatchのインスタンス作成 13 System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch(); 14 private GameObject cube; 15 private int i = 1; 16 17 //書き出し準備 18 StreamWriter sw; 19 FileInfo fi; 20 21 // Use this for initialization 22 void Start () { 23 cube = GameObject.Find ("Cube"); 24 //ファイル準備 25 fi = new FileInfo(Application.dataPath + "/" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv"); 26 sw = fi.AppendText(); 27 28 } 29 30 // Update is called once per frame 31 void Update () { 32 33 //回数制限 34 if (i > 10000) { 35 return; 36 } 37 38 //計測リセット 39 stopwatch.Reset (); 40 //計測開始 41 stopwatch.Start (); 42 43 //計測したい処理 44 cube.transform.Rotate (new Vector3 (0, 0, 30)); 45 46 //計測終了 47 stopwatch.Stop (); 48 49 //処理時間を秒で取得 50 float elapsed = (float)stopwatch.Elapsed.TotalSeconds; 51 52 //書き出す 53 sw.WriteLine(stopwatch.Elapsed); 54 sw.Flush(); 55 sw.Close(); 56 //Debug 57 Debug.Log(stopwatch.Elapsed); 58 59 60 i++; 61 62 } 63 64}
Stopwatch以外の処理速度測定や,
コルーチンを用いて遅延を入れてから書き出すなども試しましたが
実現には至りませんでした.
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/18 10:11