質問編集履歴
3
ソースコードの追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -26,6 +26,8 @@
|
|
26
26
|
|
27
27
|
Dim fs As FileStream
|
28
28
|
|
29
|
+
Dim adress(10, 10) As String
|
30
|
+
|
29
31
|
'Stopwatchオブジェクトを作成する
|
30
32
|
|
31
33
|
Dim sw As New System.Diagnostics.Stopwatch()
|
@@ -38,7 +40,7 @@
|
|
38
40
|
|
39
41
|
for i = 0 to 10
|
40
42
|
|
41
|
-
'DBからファイルパスを取得する
|
43
|
+
'DBからファイルパスを取得する。
|
42
44
|
|
43
45
|
adress(i, j) = command.ExecuteScalar()
|
44
46
|
|
@@ -69,6 +71,8 @@
|
|
69
71
|
for i = 0 to 10
|
70
72
|
|
71
73
|
for i = 0 to 10
|
74
|
+
|
75
|
+
'取得したファイルパスから描画を行う。
|
72
76
|
|
73
77
|
Me.bihin(i, j) = New System.Windows.Forms.PictureBox()
|
74
78
|
|
2
計測したコードについて追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,9 +4,9 @@
|
|
4
4
|
|
5
5
|
以下のソースコードのようにして、New句でpictureboxのインスタンスを複数個作っています。
|
6
6
|
|
7
|
-
しかし、この動作が少々重く、5秒くらいかかっています。
|
7
|
+
しかし、この動作が少々重く、5秒くらいかかっています。
|
8
8
|
|
9
|
-
|
9
|
+
(レイアウトオブジェクトを生成するコードについては割愛します。)
|
10
10
|
|
11
11
|
|
12
12
|
|
@@ -26,13 +26,49 @@
|
|
26
26
|
|
27
27
|
Dim fs As FileStream
|
28
28
|
|
29
|
+
'Stopwatchオブジェクトを作成する
|
30
|
+
|
31
|
+
Dim sw As New System.Diagnostics.Stopwatch()
|
32
|
+
|
33
|
+
'ストップウォッチを開始する
|
34
|
+
|
35
|
+
sw.Start()
|
36
|
+
|
37
|
+
for i = 0 to 10
|
38
|
+
|
39
|
+
for i = 0 to 10
|
40
|
+
|
41
|
+
'DBからファイルパスを取得する
|
42
|
+
|
43
|
+
adress(i, j) = command.ExecuteScalar()
|
44
|
+
|
45
|
+
Next
|
46
|
+
|
47
|
+
Next
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
'ストップウォッチを止める
|
52
|
+
|
53
|
+
sw.Stop()
|
54
|
+
|
55
|
+
'結果を表示する
|
56
|
+
|
57
|
+
Console.WriteLine("DBからの読み取り時間は")
|
58
|
+
|
59
|
+
Console.WriteLine(sw.Elapsed)
|
60
|
+
|
61
|
+
'ストップウォッチをリセットしてから再開する
|
62
|
+
|
63
|
+
sw.Reset()
|
64
|
+
|
65
|
+
sw.Start()
|
66
|
+
|
67
|
+
|
68
|
+
|
29
69
|
for i = 0 to 10
|
30
70
|
|
31
71
|
for i = 0 to 10
|
32
|
-
|
33
|
-
'DBで画像のアドレスを持ってくる
|
34
|
-
|
35
|
-
|
36
72
|
|
37
73
|
Me.bihin(i, j) = New System.Windows.Forms.PictureBox()
|
38
74
|
|
@@ -47,6 +83,16 @@
|
|
47
83
|
Next
|
48
84
|
|
49
85
|
Next
|
86
|
+
|
87
|
+
'ストップウォッチを止める
|
88
|
+
|
89
|
+
sw.Stop()
|
90
|
+
|
91
|
+
'結果を表示する
|
92
|
+
|
93
|
+
Console.WriteLine("描画にかかる時間は")
|
94
|
+
|
95
|
+
Console.WriteLine(sw.Elapsed)
|
50
96
|
|
51
97
|
End Class
|
52
98
|
|
@@ -70,7 +116,7 @@
|
|
70
116
|
|
71
117
|
前回の質問の時から、計測をするように回答してくださっていた方、ご忠告に従わず失礼しました。
|
72
118
|
|
73
|
-
YAma
|
119
|
+
YAmaGNZさんの回答への返信でも書きましたが、重い腰を上げて計測を行った結果を以下に報告します。
|
74
120
|
|
75
121
|
1. その他レイアウトオブジェクトの生成など: 0.00257s
|
76
122
|
|
1
計測したデータを追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -61,3 +61,31 @@
|
|
61
61
|
なんとなくイメージはできるのですが、実際に参考になるソースコードが分からず、、困っています。
|
62
62
|
|
63
63
|
参考にできるサイトの紹介とかだけでもいいので、宜しくお願い致します。
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
〇追記
|
70
|
+
|
71
|
+
前回の質問の時から、計測をするように回答してくださっていた方、ご忠告に従わず失礼しました。
|
72
|
+
|
73
|
+
YAmagaGNZさんの回答への返信でも書きましたが、重い腰を上げて計測を行った結果を以下に報告します。
|
74
|
+
|
75
|
+
1. その他レイアウトオブジェクトの生成など: 0.00257s
|
76
|
+
|
77
|
+
2. DBから画像ファイルパスなどの読み出し:0.0129663s
|
78
|
+
|
79
|
+
3. 画像ファイルパスからimageプロパティに変換してpictureboxに描画:0.0069787s
|
80
|
+
|
81
|
+
4. loadイベント全体でかかった時間: 0.0217302s
|
82
|
+
|
83
|
+
以上の結果でした。
|
84
|
+
|
85
|
+
これは割と性能のいいノートPCで行っているため、処理が速いですが、実際にこのアプリ用に使っている
|
86
|
+
|
87
|
+
タブレット端末は中古品で性能も悪く、5秒くらいかかってしまっています。
|
88
|
+
|
89
|
+
やはり、Bitmapクラスを読み込んでクラスメンバとして保持するクラスを用意していおいて全ての画像を読み込んでおけば項番2,3の動作が速くなると思います。(DBからファイルパスを持ってきて、imageプロパティに変換するというのを全部EXE起動時にやっておいた方が速くなると思います。)
|
90
|
+
|
91
|
+
なので、もっと速くする余地はありそうなので、これらのプログラム修正を行っていきたいと思います。
|