モナーの *やさしい* Delphi質問スレ Ver.6
■ このスレッドは過去ログ倉庫に格納されています
0033ガイシュツつーか結構常識っぽいような気がするけど
NGNG関数内関数とクラスの動作速度を比較するために、
ほぼ同じ機能を持つクラスと関数を作ってみたんです。
type
TClassA=class(TObject)
private
function Left(AStr:String):String;
function Right(AStr:String):String;
public
function AMain(AStr:String):String;
end;
{ TClassA }
function TClassA.AMain(AStr: String): String;
begin
Result := Left(AStr) + Right(AStr);
end;
function TClassA.Left(AStr: String): String;
begin
Result := Copy(AStr,1,3);
end;
function TClassA.Right(AStr: String): String;
begin
Result := Copy(AStr, Length(AStr)-3, 3 );
end;
{ FunctionB }
function FunctionB(AStr:String): String;
function _Left(AStr: String): String;
begin
Result := Copy(AStr,1,3);
end;
function _Right(AStr: String): String;
begin
Result := Copy(AStr, Length(AStr)-3, 3 );
end;
begin
Result := _Left(AStr) + _Right(AStr);
end;
そしてこれらを一秒間に何回実行できるか調べたところ、漏れのマシンでは
ClassA=540000
FunctionB=625000
でした。やっぱりクラスはリソースを浪費するので
何が何でもクラス、というは良くないと思われます
■ このスレッドは過去ログ倉庫に格納されています