「新メモリ最適化ツール In AB」の編集履歴(バックアップ)一覧に戻る

新メモリ最適化ツール In AB - (2010/03/21 (日) 03:04:05) のソース

1999年、CompJapanを名乗るVBプログラマー中学生の遺作。それが新メモリ最適化ツール。
VBで作られたもので後にソースが公開された。
CompJapan自慢のASテクノロジと共にABにコア部分を移植してみた。

#asciiart(blockquote){
#N88BASIC
Dim Aaaa As Single  '最適化のタイマー関係の変数
Dim Bbbb As Single  'For..Next構文にしようする変数
Dim Kkkk As Long	'なんでも
Dim Jjjj As String  '最適化中のログ(log.dat)に使用する変数
Dim Hhhh As DWord	'ウインドウハンドル
Dim Llll As Long	'最適化レベル
Dim Qqqq As String	'ユーザー入力
Dim Cccc As Long
Mmmm()

Sub Mmmm()
	Print "メモリを最適化しましょう。"
	Print "ASテクノロジ(Yes)"
*Rrrr
	Print ""
	Print "0=スピードモード,1=通常モード,2=ゆっくりモード"
	Input Qqqq
	Llll=Asc(Left$(Qqqq,1))-Asc("0")
	If Llll>2 Or Llll<0 Then GoTo *Rrrr
	
	Hhhh=GetForegroundWindow()
	SetTimer(Hhhh, Llll, 30, AddressOf(Tttt))	'タイマー
End Sub

Sub Tttt(Hhhh As Long, Uuuu As Long, Iiii As Long, Dddd As Long)
	While Cccc=1:Sleep(30):	Wend
	Cccc=1 
	If Iiii=0 Then Timer1_Timer()
	If Iiii=1 Then Timer2_Timer()
	If Iiii=2 Then Timer3_Timer()
	Cccc=0
End Sub



Sub Timer1_Timer()	  'スピードモード
	Aaaa = Aaaa + 1	 'パーセント提示の数字
	
	Jjjj = "Data Error none..." 'Printする文字列を格納
	
	Open "log.dat" For Output As #1
	For Bbbb = 1 To 400
	Print #1, Jjjj			  'CPU処理のためのPrint文
		For Kkkk = 1 To 100
		Kkkk = Kkkk + 65468543
		Kkkk = Kkkk - 65468543
		Next Kkkk
		For Kkkk = 1 To 50
		Kkkk = Kkkk + 65468543
		Kkkk = Kkkk - 65468543
		Next Kkkk
		For Kkkk = 1 To 100
		Kkkk = Kkkk + 65468543
		Kkkk = Kkkk - 65468543
		Next Kkkk
	Next Bbbb
	Close #1

	If Aaaa = 100 Then			  '最適化終了したら…
		Print "完了"
		KillTimer(Hhhh,Llll)
		Kill "log.dat"
		GoTo *Ssss
	End If
	Print Aaaa;"%"	'~%と表示させる
*Ssss
End Sub

Sub Timer2_Timer()	  '通常モード

	Aaaa = Aaaa + 1		'パーセント提示の数字
	
	Jjjj = "Data Error none..." 'Printする文字列を格納
	
	Open "log.dat" For Output As #1
	
	For Bbbb = 1 To 3000
	Print #1, Jjjj			  'CPU処理のためのPrint文
		For Kkkk = 1 To 120
		Kkkk = Kkkk + 65468543
		Kkkk = Kkkk - 65468543
		Next Kkkk
	Next Bbbb
	
	Close #1

	If Aaaa = 100 Then			  '最適化終了したら…
		Print "完了"
		KillTimer(Hhhh,Llll)
		Kill "log.dat"
		GoTo *Ssss
	End If
	Print Aaaa;"%"	'~%と表示させる
*Ssss
End Sub

Sub Timer3_Timer()	  'ゆっくりモード

	Aaaa = Aaaa + 1		'パーセント提示の数字
	
	Jjjj = "Data Error none..." 'Printする文字列を格納
	
	Open "log.dat" For Output As #1
	
	For Bbbb = 1 To 25000
	Print #1, Jjjj			  'CPU処理のためのPrint文
		For Kkkk = 1 To 50
		Kkkk = Kkkk + 65468543
		Kkkk = Kkkk - 65468543
		Next Kkkk
	Next Bbbb
	
	Close #1

	If Aaaa = 100 Then			  '最適化終了したら…
		Print "完了"
		KillTimer(Hhhh,Llll)
		Kill "log.dat"
		GoTo *Ssss
	End If
	Print Aaaa;"%"	'~%と表示させる
*Ssss
End Sub
}