Alternate e697dbe9c5997e35395fe158628dd8c5209481da
for Visual Studio 2022 and Windows 11.
読み取り中…
検索中…
一致する文字列を見つけられません
ArrayPerformanceCheck.cpp
[詳解]
1
5
6#include "pch.h"
8#include "Freight.hpp"
9
10using namespace PerfCheck;
11
13 :PerformanceCheck (console)
14{
15}
16
18{
19}
20
22{
23 int count = alt::Utility::ReadIniFile(CONFIG_FILE, _T("Array"), _T("Count"), -1);
24 if (count == -1) return FALSE;
25
26 int size = alt::Utility::ReadIniFile(CONFIG_FILE, _T("Array"), _T("Size"), -1);
27 if (size == -1) return FALSE;
28
29 _console.Format (_T ("Count=%d Size=%d\n"), count, size);
30
31 return this->Core (count, size);
32}
33
34BOOL ArrayPerformanceCheck::Core (const int param1, const int param2)
35{
37 typedef alt::skeleton::Freight<BYTE> ByteFreight;
38 LPBYTE lpbyData = new BYTE[param2];
39 ZeroMemory (lpbyData, param2);
41
42 Q.Start ();
43
44 for (int i = 0; i < param1; i++)
45 {
46 ByteFreight byteFreight (lpbyData, param2);
47 container.Add (byteFreight);
48 }
49
50 for (int i = 0; i < param1; i++)
51 {
52 ByteFreight byteFreight (lpbyData, param2);
53 container.Insert (byteFreight, 0);
54 }
55
56 for (int i = 0; i < param1; i++)
57 {
58 ByteFreight byteFreight (lpbyData, param2);
59 container.Insert (byteFreight, container.Size());
60 }
61
62 for (int i = 0; i < param1; i++)
63 {
64 container.Remove (0);
65 }
66
67 alt::skeleton::Array<ByteFreight> container2 = container;
68 container.Clear ();
69
70 for (int i = 0; i < container2.Size (); i++)
71 {
72 ByteFreight* value = container2.Get (i);
73 LPBYTE lpbyData = value->GetData ();
74 size_t size = value->GetSize ();
75 }
76
77 container2.Clear ();
78
79 Q.Stop ();
80
81 delete[] lpbyData;
82 int msec = static_cast<int>(Q.PastTime ());
83
84 _console.Format( _T ("It takes %dmsec.\n"), msec);
85
86 return TRUE;
87}
Arrayクラス性能測定用
#define CONFIG_FILE
Definition: ConsoleDriver.h:10
プリミティブな変数を管理するコンテナクラス
#define size
プリコンパイル済みヘッダー ファイルです。
virtual BOOL DoAction()
処理開始
ArrayPerformanceCheck(alt::Console &console)
virtual BOOL Core(const int param1, const int param2)
コンソールに関するクラス
Definition: Console.h:88
VOID APIENTRY Format(LPCTSTR format,...) const
コンソールに文字を出力します。
Definition: Console.cpp:63
高分解能時間計測クラス
VOID APIENTRY Start()
計測を開始します。
double APIENTRY PastTime() const
計測開始〜計測終了までの時間を出力します。
VOID APIENTRY Stop()
計測を終了します。
static BOOL APIENTRY ReadIniFile(LPCTSTR lpctszIniFile, LPCTSTR lpctszSection, LPCTSTR lpctszKeyword, TString &response)
設定フィルの読み込み
Definition: Utility.cpp:178
サイズ可変の配列を具現したクラス
Definition: Array.hpp:20
T *APIENTRY Get(SIZE_T index) const
指定したインデックスの値を取得
Definition: Array.hpp:66
VOID APIENTRY Clear()
領域の開放
Definition: Array.hpp:154
VOID APIENTRY Remove(SIZE_T position)
Array<T>から値を削除
Definition: Array.hpp:114
VOID APIENTRY Insert(T &item, SIZE_T position)
Array<T>へ値を挿入
Definition: Array.hpp:95
VOID APIENTRY Add(T &item)
Array<T>へ値を追加
Definition: Array.hpp:83
SIZE_T APIENTRY Size() const
サイズを取得
Definition: Array.hpp:206
プリミティブな変数を管理するコンテナクラス
Definition: Freight.hpp:18