goo

最適化

history.txtから引用
2006/03/09 3.1b2
不必要なモジュール、DLLインポート情報をオブジェクトファイルから破棄する最適化機能を追加。
AXファイルのサイズ比較 - HSP Ver 3.2
コードを記述しない白紙の状態でAXファイルを作成した場合のサイズは、114byte。関数の定義だけでは、AXサイズは変わらず、呼び出した関数名のみ登録されます。モジュールの場合、モジュール内の命令・関数を一つでも呼び出された場合モジュール内全てが登録されるようです。
AX File Size : 130byte
#include "user32.as"
#module
#deffunc Func1
	return
#deffunc Func2
	return
#global
AX File Size : 226byte
#include "user32.as"
#module
#deffunc Func1
	return
#deffunc Func2
	return
#global
	Func1

AX File Size : 306byte
#include "user32.as"
#module
#deffunc Func1
	return
#deffunc Func2
	return
#global
	Func1
	Func2
	GetDesktopWindow
最適化によるラベル無効の例
モジュール内にラベルを使用している場合注意が必要です。以下サンプルです。モジュール「mod1」のラベルがモジュール「mod2」の「Func4」命令で使用されていますが、「mod1」の「Func3」命令がサンプル内で使用されていない為に最適化により「mod1」は無視されます。よって、コンパイルエラー
#ラベルが存在しません [label1@mod1]
error 19 : 致命的なエラーです
となります。コード内に、「Func3」命令がどこかにあればエラーにはなりません。
コンパイルエラーコード
#module mod1
#deffunc Func3
	return
*Label1
	return
#global

#module mod2
#deffunc Func4
	gosub *Label1@mod1
	return
#global
	Func4
コメント ( 0 ) | Trackback ( 0 )