Alternate e697dbe9c5997e35395fe158628dd8c5209481da
for Visual Studio 2022 and Windows 11.
全て クラス 名前空間 ファイル 関数 変数 型定義 列挙型 列挙値 マクロ定義 ページ
TStringPerformanceCheck.cpp
[詳解]
1
5
6#include "pch.h"
8
9using namespace PerfCheck;
10
12 :PerformanceCheck (console)
13{
14}
15
17{
18}
19
21{
22 this->Core (1);
23 //this->Core(2);
24 //this->Core(3);
25
26 return TRUE;
27}
28
29BOOL TStringPerformanceCheck::Core (const int param1)
30{
32
33 Q.Start ();
34
35 switch (param1)
36 {
37 case 1:
38 this->Core1 ();
39 break;
40
41 case 2:
42 this->Core2 ();
43 break;
44
45 case 3:
46 this->Core3 ();
47 break;
48 }
49
50 Q.Stop ();
51
52 DWORD pastTime = static_cast<DWORD>(Q.PastTime () * 1000);
53
54 _console.Format( _T ("param1(%d) pastTick(%d)\n"), param1, pastTime);
55
56 return TRUE;
57}
58
60{
61 alt::File csvFile;
62
63 BOOL ret = csvFile.Create (TEST_FILE, GENERIC_READ, 0, OPEN_EXISTING);
64 if (!ret) return FALSE;
65
66 DWORD dwFileSize = static_cast<DWORD>(csvFile.GetSize ());
67 alt::TString csvData (dwFileSize);
68
69 DWORD dwReadSize = csvFile.Read (csvData.Ptr (), dwFileSize);
70 if (dwReadSize != dwFileSize) return FALSE;
71
72 alt::TString delimiter (_T ("\r\n"));
73 auto response = csvData.Split (delimiter);
74 alt::TString message;
75
76 for (size_t i = 0; i < response.Size (); i++)
77 {
78 auto response2 = response[i]->Split (alt::TString (_T (",")));
79 for (size_t j = 0; j < response2.Size (); j++)
80 {
81 _console.Format (_T ("%s\t"), response2[j]->Ctr ());
82 Sleep (1); // 診断ツール:プロセスメモリの増加状況確認用
83 }
84 _console.Write (_T ("\n"));
85 }
86
87 ret = csvFile.Close ();
88 if (!ret) return FALSE;
89
90 return TRUE;
91}
92
94{
96
97 Q.Start ();
98
99 alt::TString formatMessage;
100
101 for (int i = 0; i < 10000; i++)
102 {
103 formatMessage.Format (_T ("This is a sample test No.%5d."), i);
104 _console.Write (formatMessage.Ctr ());
105 //Sleep(2); // 診断ツール:プロセスメモリの増加状況確認用
106 }
107
108 Q.Stop ();
109 DWORD pastTime = static_cast<DWORD>(Q.PastTime () * 1000);
110
111 return TRUE;
112}
113
115{
116 return TRUE;
117}
TStringクラス性能測定用
#define TEST_FILE
プリコンパイル済みヘッダー ファイルです。
virtual BOOL Core(const int param1)
コンソールに関するクラス
Definition: Console.h:88
DWORD APIENTRY Write(LPCTSTR lpctszString) const
コンソールに文字を出力します。
Definition: Console.cpp:54
VOID APIENTRY Format(LPCTSTR format,...) const
コンソールに文字を出力します。
Definition: Console.cpp:63
ファイルIOに関するWindowsAPIを集約したクラス
Definition: File.h:16
BOOL APIENTRY Create(LPCTSTR lpctszFileName, DWORD dwDesiredAccess, DWORD dwShareMode, DWORD dwCreationDisposition)
ファイルを作成、オープンします。
Definition: File.cpp:12
LONGLONG APIENTRY GetSize() const
ファイルサイズを取得します。
Definition: File.cpp:51
BOOL APIENTRY Close()
使用しなくなったハンドルはこれでクローズします。
高分解能時間計測クラス
VOID APIENTRY Start()
計測を開始します。
double APIENTRY PastTime() const
計測開始〜計測終了までの時間を出力します。
VOID APIENTRY Stop()
計測を終了します。
DWORD APIENTRY Read(LPVOID lpvBuffer, DWORD dwSize) const
HANDLEを使ってデータを読み込みます。
文字列に関するWindowsAPIを集約したクラス
Definition: TString.h:17
skeleton::Array< TString > APIENTRY Split(const TString &delimiters)
文字列を指定した文字列で分割します。
Definition: TString.cpp:267
TString &APIENTRY Format(LPCTSTR format,...)
フォーマットに従ってパラメータを文字列化します。
Definition: TString.cpp:333
LPCTSTR APIENTRY Ctr() const
内部で確保している文字列ポインタを取得します。
Definition: TString.h:46
LPTSTR APIENTRY Ptr() const
内部で確保している文字列ポインタを取得します。
Definition: TString.h:42