最近我一直在开发一个应用程序,想要拥有多种类型的集合。我不想为其类型声明和实现新的集合类。因此,我考虑使用泛型,但不确定泛型与普通类型实例相比的性能。性能是我关注的主要因素。我的应用程序对时间要求很高,甚至损失几百毫秒也是不可取的。
我使用的是德尔福XE3
For eg:
ICollectionItem = interface
function GetID : string;
property ID : string read GetId;
end;
TGenericCollection<T: ICollectionItem> = class
function Add(T) : Integer;
end;
相比
TSomeClass = class(TInterfacedObject, ICollectionItem)
function GetId : string;
end;
TSomeClassList = class
function Add(item : TSomeClass) : Integer;
end;
无性能瓶颈
Delphi 泛型是compiled。编译器知道具体类型compile时间,它会尽力为您提供最好的代码。在运行时检查生成的代码时,通用代码和非通用代码之间不应存在差异。
使用泛型获得更好的代码是一个很好的机会,因为您更有可能使用现成的、高效的、类型安全的数据结构。当你自己动手时,你可能会走捷径,因为说实话,编写排序算法、高效分配等是hard.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)