ホームページ >コンピューターのチュートリアル >コンピュータ知識 >Yi Language のカウント ループにより過剰な CPU 使用率が発生する
このように読むと、1 秒間に数百台のハードディスク、1 分間に 10,000 台以上のハードディスクを読み取ることができます。 ! !
次の配列メソッドを試してみると、より良い方法になるはずです。
.バージョン 2
.サポート ライブラリ EdirectX
.アセンブリ ウィンドウ アセンブリ 1
.アセンブリ変数画面、画面
.アセンブリ変数ページ、ページ、、"0"
.アセンブリ変数横軸、整数型、「0」
.アセンブリ変数座標、整数型、「0」
.アセンブリ変数の背景、ページ
.アセンブリ変数レコード番号、整数型
.サブルーチン __start window_created
.ローカル変数n、整数型
Screen.Create フルスクリーン モード (ウィンドウ ハンドル ()、800、600、32、false を取得)
Background = screen.背景ページを取得 ()
開く (実行ディレクトリ () "\data\map1.edb", , , , , , )
レコード数 = レコード数を取得 ()
配列を再定義(ページ、false、レコード数)
配列を再定義(横軸、false、レコード数)
配列を再定義(縦座標、false、レコード数)
最初のレコードに移動 ()
.カウントサイクルヘッド(レコード数、n)
Page [n]. ビットマップ ページを作成します (画面、実行ディレクトリを取得します () read ("name")、)
Abscissa [n] = Read ("abscissa") ' 論理的に、データベース内の型が一致する場合、再度変換する必要はありません
座標[n] = read("座標")
###飛び越える ()###.カウントループ終了 ()
閉鎖()
クロック 1。クロック周期 = 100
.サブルーチン _クロック 1_期間イベント
.ローカル変数n、整数型
Clock 1. Clock period = 0' これら 2 つの文は削除できます
Background.Fill ページ (#white)
.カウントサイクルヘッド(レコード数、n)
ページ [n].ブロックコピー (背景、横軸 [n]、縦軸 [n]、)
.カウントループ終了 ()
Screen.SwapPage(false,false,false)
Clock 1. Clock period = 100' これら 2 つの文は削除できます
Yi 言語プログラムで CPU 使用率を削減する方法
1
2
3
4
5
6
###7###8
9
10
11
12
13
14
15
16
17
18
19
20
###21### ###22###.バージョン 2
.データ型: コンピューターの CPU 情報の取得、system_info
.メンバー dwoemid、整数型、、、識別子
.メンバー dwpagesize、整数型、、、ページング サイズ
.メンバー lpminimumapplicationaddress、整数型、、、最小アドレス空間
.メンバー lpmaximumapplicationaddress、整数型、、、最大アドレス空間
.メンバー dwactiveprocessormask、整数型、、、プロセッサ マスク
.メンバー dwnumberorfprocessors、整数型、、、プロセッサ数
.メンバー dwprocessortype、整数型、、、プロセッサ タイプ
.メンバーの dwallocation 粒度、整数型、、、仮想メモリ空間の粒度
.Member dwreserved、整数型、、、予約済み
.データ型memorystatusex
.メンバーの dwlength、整数型、、、、64
.メンバー dwmemoryload、整数型
.メンバー ultotalphys、長整数型
.メンバー ullavailphys、長整数型
.メンバー ullTotalPagefile、長整数型
.メンバー ullavailpagefile、長整数型
.メンバー ultotalvirtual、長整数型
.メンバー ullavailvirtual、長整数型
.メンバー ullavailextendedvirtual、長整数型
.バージョン2.サポートライブラリ仕様.アセンブリウィンドウassembly_start window.Subroutine__start window_createdデバッグ出力(メモリ情報取得()).サブルーチンはメモリ情報取得、テキスト型.ローカル変数ポインタ、memorystatusex pointer.dwlength = 64globalmemorystatusex (ポインタ) return (「合計物理メモリ:」をテキストに変換 (四捨五入 (pointer.ulltotalphys ÷ 1048576, )) "mb" #newline 「使用可能な物理メモリ:」をテキストに (四捨五入 (pointer.ullavailphys ÷ 1048576, )) "mb" #改行"仮想メモリ:" をテキストに変換 (四捨五入 (pointer.ulltotalvirtual ÷ 1048576, )) "mb" #改行 "利用可能な仮想メモリ:" をテキストに (四捨五入 (pointer.ullavailvirtual ÷ 1048576, )) "mb" #改行 "合計ページ ファイル:" をテキストに (四捨五入 (pointer.ullavailpagefile ÷ 1048576, )) "mb" #改行 "利用可能なページ ファイル:" をテキストに (四捨五入 (Pointer.ullavailpagefile ÷ 1048576, )) "mb" #改行 "コンピューターのメモリ使用量:" をテキスト (pointer.dwmemoryload) "%")
以上がYi Language のカウント ループにより過剰な CPU 使用率が発生するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。