сделал тест на основе циферок от runewalsh. Время заполнения мапы конечно идеально - ключики идут в возрастающем порядке. Но это только время заполнения - на сам тест оно не влияет
Код: Выделить всё
program case2map;
uses
gmap,gutil,sysutils;
type
TMyKey=Integer;
TMyOnKeyProc=procedure(key:integer);
TMyKeyComparer=specialize TLess<TMyKey>;
TMyCase2Map=class(specialize TMap<TMyKey,TMyOnKeyProc,TMyKeyComparer>)
procedure doit(key:TMyKey);
end;
var
MyCase:TMyCase2Map;
myTime:TDateTime;
ts:string;
i,j:integer;
procedure test(key:integer);
begin
randseed:=key;
end;
procedure TMyCase2Map.doit(key:TMyKey);
var
proc:TMyOnKeyProc;
begin
if TryGetValue(key,proc) then
proc(key)
end;
begin
MyCase:=TMyCase2Map.Create;
myTime:=now;
MyCase.Insert(0,@test);
MyCase.Insert(1,@test);
MyCase.Insert(4,@test);
MyCase.Insert(9,@test);
MyCase.Insert(16,@test);
MyCase.Insert(25,@test);
MyCase.Insert(36,@test);
MyCase.Insert(49,@test);
MyCase.Insert(64,@test);
MyCase.Insert(81,@test);
MyCase.Insert(100,@test);
MyCase.Insert(121,@test);
MyCase.Insert(144,@test);
MyCase.Insert(169,@test);
MyCase.Insert(196,@test);
MyCase.Insert(225,@test);
MyCase.Insert(256,@test);
MyCase.Insert(289,@test);
MyCase.Insert(324,@test);
MyCase.Insert(361,@test);
MyCase.Insert(400,@test);
MyCase.Insert(441,@test);
MyCase.Insert(484,@test);
MyCase.Insert(529,@test);
MyCase.Insert(576,@test);
MyCase.Insert(625,@test);
MyCase.Insert(676,@test);
MyCase.Insert(729,@test);
MyCase.Insert(784,@test);
MyCase.Insert(841,@test);
MyCase.Insert(900,@test);
MyCase.Insert(961,@test);
MyCase.Insert(1024,@test);
MyCase.Insert(1089,@test);
MyCase.Insert(1156,@test);
MyCase.Insert(1225,@test);
MyCase.Insert(1296,@test);
MyCase.Insert(1369,@test);
MyCase.Insert(1444,@test);
MyCase.Insert(1521,@test);
MyCase.Insert(1600,@test);
MyCase.Insert(1681,@test);
MyCase.Insert(1764,@test);
MyCase.Insert(1849,@test);
MyCase.Insert(1936,@test);
MyCase.Insert(2025,@test);
MyCase.Insert(2116,@test);
MyCase.Insert(2209,@test);
MyCase.Insert(2304,@test);
MyCase.Insert(2401,@test);
MyCase.Insert(2500,@test);
MyCase.Insert(2601,@test);
MyCase.Insert(2704,@test);
MyCase.Insert(2809,@test);
MyCase.Insert(2916,@test);
MyCase.Insert(3025,@test);
MyCase.Insert(3136,@test);
MyCase.Insert(3249,@test);
MyCase.Insert(3364,@test);
MyCase.Insert(3481,@test);
MyCase.Insert(3600,@test);
MyCase.Insert(3721,@test);
MyCase.Insert(3844,@test);
MyCase.Insert(3969,@test);
MyCase.Insert(4096,@test);
MyCase.Insert(4225,@test);
MyCase.Insert(4356,@test);
MyCase.Insert(4489,@test);
MyCase.Insert(4624,@test);
MyCase.Insert(4761,@test);
MyCase.Insert(4900,@test);
MyCase.Insert(5041,@test);
MyCase.Insert(5184,@test);
MyCase.Insert(5329,@test);
MyCase.Insert(5476,@test);
MyCase.Insert(5625,@test);
MyCase.Insert(5776,@test);
MyCase.Insert(5929,@test);
MyCase.Insert(6084,@test);
MyCase.Insert(6241,@test);
MyCase.Insert(6400,@test);
MyCase.Insert(6561,@test);
MyCase.Insert(6724,@test);
MyCase.Insert(6889,@test);
MyCase.Insert(7056,@test);
MyCase.Insert(7225,@test);
MyCase.Insert(7396,@test);
MyCase.Insert(7569,@test);
MyCase.Insert(7744,@test);
MyCase.Insert(7921,@test);
MyCase.Insert(8100,@test);
MyCase.Insert(8281,@test);
MyCase.Insert(8464,@test);
MyCase.Insert(8649,@test);
MyCase.Insert(8836,@test);
MyCase.Insert(9025,@test);
MyCase.Insert(9216,@test);
MyCase.Insert(9409,@test);
MyCase.Insert(9604,@test);
MyCase.Insert(9801,@test);
MyCase.Insert(10000,@test);
MyCase.Insert(10201,@test);
MyCase.Insert(10404,@test);
MyCase.Insert(10609,@test);
MyCase.Insert(10816,@test);
MyCase.Insert(11025,@test);
MyCase.Insert(11236,@test);
MyCase.Insert(11449,@test);
MyCase.Insert(11664,@test);
MyCase.Insert(11881,@test);
MyCase.Insert(12100,@test);
MyCase.Insert(12321,@test);
MyCase.Insert(12544,@test);
MyCase.Insert(12769,@test);
MyCase.Insert(12996,@test);
MyCase.Insert(13225,@test);
MyCase.Insert(13456,@test);
MyCase.Insert(13689,@test);
MyCase.Insert(13924,@test);
MyCase.Insert(14161,@test);
MyCase.Insert(14400,@test);
MyCase.Insert(14641,@test);
MyCase.Insert(14884,@test);
MyCase.Insert(15129,@test);
MyCase.Insert(15376,@test);
MyCase.Insert(15625,@test);
MyCase.Insert(15876,@test);
MyCase.Insert(16129,@test);
MyCase.Insert(16384,@test);
MyCase.Insert(16641,@test);
MyCase.Insert(16900,@test);
MyCase.Insert(17161,@test);
MyCase.Insert(17424,@test);
MyCase.Insert(17689,@test);
MyCase.Insert(17956,@test);
MyCase.Insert(18225,@test);
MyCase.Insert(18496,@test);
MyCase.Insert(18769,@test);
MyCase.Insert(19044,@test);
MyCase.Insert(19321,@test);
MyCase.Insert(19600,@test);
MyCase.Insert(19881,@test);
MyCase.Insert(20164,@test);
MyCase.Insert(20449,@test);
MyCase.Insert(20736,@test);
MyCase.Insert(21025,@test);
MyCase.Insert(21316,@test);
MyCase.Insert(21609,@test);
MyCase.Insert(21904,@test);
MyCase.Insert(22201,@test);
MyCase.Insert(22500,@test);
MyCase.Insert(22801,@test);
MyCase.Insert(23104,@test);
MyCase.Insert(23409,@test);
MyCase.Insert(23716,@test);
MyCase.Insert(24025,@test);
MyCase.Insert(24336,@test);
MyCase.Insert(24649,@test);
MyCase.Insert(24964,@test);
MyCase.Insert(25281,@test);
MyCase.Insert(25600,@test);
MyCase.Insert(25921,@test);
MyCase.Insert(26244,@test);
MyCase.Insert(26569,@test);
MyCase.Insert(26896,@test);
MyCase.Insert(27225,@test);
MyCase.Insert(27556,@test);
MyCase.Insert(27889,@test);
MyCase.Insert(28224,@test);
MyCase.Insert(28561,@test);
MyCase.Insert(28900,@test);
MyCase.Insert(29241,@test);
MyCase.Insert(29584,@test);
MyCase.Insert(29929,@test);
MyCase.Insert(30276,@test);
MyCase.Insert(30625,@test);
MyCase.Insert(30976,@test);
MyCase.Insert(31329,@test);
MyCase.Insert(31684,@test);
MyCase.Insert(32041,@test);
MyCase.Insert(32400,@test);
MyCase.Insert(32761,@test);
MyCase.Insert(33124,@test);
MyCase.Insert(33489,@test);
MyCase.Insert(33856,@test);
MyCase.Insert(34225,@test);
MyCase.Insert(34596,@test);
MyCase.Insert(34969,@test);
MyCase.Insert(35344,@test);
MyCase.Insert(35721,@test);
MyCase.Insert(36100,@test);
MyCase.Insert(36481,@test);
MyCase.Insert(36864,@test);
MyCase.Insert(37249,@test);
MyCase.Insert(37636,@test);
MyCase.Insert(38025,@test);
MyCase.Insert(38416,@test);
MyCase.Insert(38809,@test);
MyCase.Insert(39204,@test);
MyCase.Insert(39601,@test);
MyCase.Insert(40000,@test);
MyCase.Insert(40401,@test);
MyCase.Insert(40804,@test);
MyCase.Insert(41209,@test);
MyCase.Insert(41616,@test);
MyCase.Insert(42025,@test);
MyCase.Insert(42436,@test);
MyCase.Insert(42849,@test);
MyCase.Insert(43264,@test);
MyCase.Insert(43681,@test);
MyCase.Insert(44100,@test);
MyCase.Insert(44521,@test);
MyCase.Insert(44944,@test);
MyCase.Insert(45369,@test);
MyCase.Insert(45796,@test);
MyCase.Insert(46225,@test);
MyCase.Insert(46656,@test);
MyCase.Insert(47089,@test);
MyCase.Insert(47524,@test);
MyCase.Insert(47961,@test);
MyCase.Insert(48400,@test);
MyCase.Insert(48841,@test);
MyCase.Insert(49284,@test);
MyCase.Insert(49729,@test);
MyCase.Insert(50176,@test);
MyCase.Insert(50625,@test);
MyCase.Insert(51076,@test);
MyCase.Insert(51529,@test);
MyCase.Insert(51984,@test);
MyCase.Insert(52441,@test);
MyCase.Insert(52900,@test);
MyCase.Insert(53361,@test);
MyCase.Insert(53824,@test);
MyCase.Insert(54289,@test);
MyCase.Insert(54756,@test);
MyCase.Insert(55225,@test);
MyCase.Insert(55696,@test);
MyCase.Insert(56169,@test);
MyCase.Insert(56644,@test);
MyCase.Insert(57121,@test);
MyCase.Insert(57600,@test);
MyCase.Insert(58081,@test);
MyCase.Insert(58564,@test);
MyCase.Insert(59049,@test);
MyCase.Insert(59536,@test);
MyCase.Insert(60025,@test);
MyCase.Insert(60516,@test);
MyCase.Insert(61009,@test);
MyCase.Insert(61504,@test);
MyCase.Insert(62001,@test);
MyCase.Insert(62500,@test);
MyCase.Insert(63001,@test);
MyCase.Insert(63504,@test);
MyCase.Insert(64009,@test);
MyCase.Insert(64516,@test);
MyCase.Insert(65025,@test);
MyCase.Insert(65536,@test);
MyCase.Insert(66049,@test);
MyCase.Insert(66564,@test);
MyCase.Insert(67081,@test);
MyCase.Insert(67600,@test);
MyCase.Insert(68121,@test);
MyCase.Insert(68644,@test);
MyCase.Insert(69169,@test);
MyCase.Insert(69696,@test);
MyCase.Insert(70225,@test);
MyCase.Insert(70756,@test);
MyCase.Insert(71289,@test);
MyCase.Insert(71824,@test);
MyCase.Insert(72361,@test);
MyCase.Insert(72900,@test);
MyCase.Insert(73441,@test);
MyCase.Insert(73984,@test);
MyCase.Insert(74529,@test);
MyCase.Insert(75076,@test);
MyCase.Insert(75625,@test);
MyCase.Insert(76176,@test);
MyCase.Insert(76729,@test);
MyCase.Insert(77284,@test);
MyCase.Insert(77841,@test);
MyCase.Insert(78400,@test);
MyCase.Insert(78961,@test);
MyCase.Insert(79524,@test);
MyCase.Insert(80089,@test);
MyCase.Insert(80656,@test);
MyCase.Insert(81225,@test);
MyCase.Insert(81796,@test);
MyCase.Insert(82369,@test);
MyCase.Insert(82944,@test);
MyCase.Insert(83521,@test);
MyCase.Insert(84100,@test);
MyCase.Insert(84681,@test);
MyCase.Insert(85264,@test);
MyCase.Insert(85849,@test);
MyCase.Insert(86436,@test);
MyCase.Insert(87025,@test);
MyCase.Insert(87616,@test);
MyCase.Insert(88209,@test);
MyCase.Insert(88804,@test);
MyCase.Insert(89401,@test);
MyCase.Insert(90000,@test);
MyCase.Insert(90601,@test);
MyCase.Insert(91204,@test);
MyCase.Insert(91809,@test);
MyCase.Insert(92416,@test);
MyCase.Insert(93025,@test);
MyCase.Insert(93636,@test);
MyCase.Insert(94249,@test);
MyCase.Insert(94864,@test);
MyCase.Insert(95481,@test);
MyCase.Insert(96100,@test);
MyCase.Insert(96721,@test);
MyCase.Insert(97344,@test);
MyCase.Insert(97969,@test);
MyCase.Insert(98596,@test);
MyCase.Insert(99225,@test);
MyCase.Insert(99856,@test);
MyCase.Insert(100489,@test);
MyCase.Insert(101124,@test);
MyCase.Insert(101761,@test);
MyCase.Insert(102400,@test);
MyCase.Insert(103041,@test);
MyCase.Insert(103684,@test);
MyCase.Insert(104329,@test);
MyCase.Insert(104976,@test);
MyCase.Insert(105625,@test);
MyCase.Insert(106276,@test);
MyCase.Insert(106929,@test);
MyCase.Insert(107584,@test);
MyCase.Insert(108241,@test);
MyCase.Insert(108900,@test);
MyCase.Insert(109561,@test);
MyCase.Insert(110224,@test);
MyCase.Insert(110889,@test);
MyCase.Insert(111556,@test);
MyCase.Insert(112225,@test);
MyCase.Insert(112896,@test);
MyCase.Insert(113569,@test);
MyCase.Insert(114244,@test);
MyCase.Insert(114921,@test);
MyCase.Insert(115600,@test);
MyCase.Insert(116281,@test);
MyCase.Insert(116964,@test);
MyCase.Insert(117649,@test);
MyCase.Insert(118336,@test);
MyCase.Insert(119025,@test);
MyCase.Insert(119716,@test);
MyCase.Insert(120409,@test);
MyCase.Insert(121104,@test);
MyCase.Insert(121801,@test);
MyCase.Insert(122500,@test);
MyCase.Insert(123201,@test);
MyCase.Insert(123904,@test);
MyCase.Insert(124609,@test);
MyCase.Insert(125316,@test);
MyCase.Insert(126025,@test);
MyCase.Insert(126736,@test);
MyCase.Insert(127449,@test);
MyCase.Insert(128164,@test);
MyCase.Insert(128881,@test);
MyCase.Insert(129600,@test);
MyCase.Insert(130321,@test);
MyCase.Insert(131044,@test);
MyCase.Insert(131769,@test);
MyCase.Insert(132496,@test);
MyCase.Insert(133225,@test);
MyCase.Insert(133956,@test);
MyCase.Insert(134689,@test);
MyCase.Insert(135424,@test);
MyCase.Insert(136161,@test);
MyCase.Insert(136900,@test);
MyCase.Insert(137641,@test);
MyCase.Insert(138384,@test);
MyCase.Insert(139129,@test);
MyCase.Insert(139876,@test);
MyCase.Insert(140625,@test);
MyCase.Insert(141376,@test);
MyCase.Insert(142129,@test);
MyCase.Insert(142884,@test);
MyCase.Insert(143641,@test);
MyCase.Insert(144400,@test);
MyCase.Insert(145161,@test);
MyCase.Insert(145924,@test);
MyCase.Insert(146689,@test);
MyCase.Insert(147456,@test);
MyCase.Insert(148225,@test);
MyCase.Insert(148996,@test);
MyCase.Insert(149769,@test);
MyCase.Insert(150544,@test);
MyCase.Insert(151321,@test);
MyCase.Insert(152100,@test);
MyCase.Insert(152881,@test);
MyCase.Insert(153664,@test);
MyCase.Insert(154449,@test);
MyCase.Insert(155236,@test);
MyCase.Insert(156025,@test);
MyCase.Insert(156816,@test);
MyCase.Insert(157609,@test);
MyCase.Insert(158404,@test);
MyCase.Insert(159201,@test);
MyCase.Insert(160000,@test);
MyCase.Insert(160801,@test);
MyCase.Insert(161604,@test);
MyCase.Insert(162409,@test);
MyCase.Insert(163216,@test);
MyCase.Insert(164025,@test);
MyCase.Insert(164836,@test);
MyCase.Insert(165649,@test);
MyCase.Insert(166464,@test);
MyCase.Insert(167281,@test);
MyCase.Insert(168100,@test);
MyCase.Insert(168921,@test);
MyCase.Insert(169744,@test);
MyCase.Insert(170569,@test);
MyCase.Insert(171396,@test);
MyCase.Insert(172225,@test);
MyCase.Insert(173056,@test);
MyCase.Insert(173889,@test);
MyCase.Insert(174724,@test);
MyCase.Insert(175561,@test);
MyCase.Insert(176400,@test);
MyCase.Insert(177241,@test);
MyCase.Insert(178084,@test);
MyCase.Insert(178929,@test);
MyCase.Insert(179776,@test);
MyCase.Insert(180625,@test);
MyCase.Insert(181476,@test);
MyCase.Insert(182329,@test);
MyCase.Insert(183184,@test);
MyCase.Insert(184041,@test);
MyCase.Insert(184900,@test);
MyCase.Insert(185761,@test);
MyCase.Insert(186624,@test);
MyCase.Insert(187489,@test);
MyCase.Insert(188356,@test);
MyCase.Insert(189225,@test);
MyCase.Insert(190096,@test);
MyCase.Insert(190969,@test);
MyCase.Insert(191844,@test);
MyCase.Insert(192721,@test);
MyCase.Insert(193600,@test);
MyCase.Insert(194481,@test);
MyCase.Insert(195364,@test);
MyCase.Insert(196249,@test);
MyCase.Insert(197136,@test);
MyCase.Insert(198025,@test);
MyCase.Insert(198916,@test);
MyCase.Insert(199809,@test);
MyCase.Insert(200704,@test);
MyCase.Insert(201601,@test);
MyCase.Insert(202500,@test);
MyCase.Insert(203401,@test);
MyCase.Insert(204304,@test);
MyCase.Insert(205209,@test);
MyCase.Insert(206116,@test);
MyCase.Insert(207025,@test);
MyCase.Insert(207936,@test);
MyCase.Insert(208849,@test);
MyCase.Insert(209764,@test);
MyCase.Insert(210681,@test);
MyCase.Insert(211600,@test);
MyCase.Insert(212521,@test);
MyCase.Insert(213444,@test);
MyCase.Insert(214369,@test);
MyCase.Insert(215296,@test);
MyCase.Insert(216225,@test);
MyCase.Insert(217156,@test);
MyCase.Insert(218089,@test);
MyCase.Insert(219024,@test);
MyCase.Insert(219961,@test);
MyCase.Insert(220900,@test);
MyCase.Insert(221841,@test);
MyCase.Insert(222784,@test);
MyCase.Insert(223729,@test);
MyCase.Insert(224676,@test);
MyCase.Insert(225625,@test);
MyCase.Insert(226576,@test);
MyCase.Insert(227529,@test);
MyCase.Insert(228484,@test);
MyCase.Insert(229441,@test);
MyCase.Insert(230400,@test);
MyCase.Insert(231361,@test);
MyCase.Insert(232324,@test);
MyCase.Insert(233289,@test);
MyCase.Insert(234256,@test);
MyCase.Insert(235225,@test);
MyCase.Insert(236196,@test);
MyCase.Insert(237169,@test);
MyCase.Insert(238144,@test);
MyCase.Insert(239121,@test);
MyCase.Insert(240100,@test);
MyCase.Insert(241081,@test);
MyCase.Insert(242064,@test);
MyCase.Insert(243049,@test);
MyCase.Insert(244036,@test);
MyCase.Insert(245025,@test);
MyCase.Insert(246016,@test);
MyCase.Insert(247009,@test);
MyCase.Insert(248004,@test);
MyCase.Insert(249001,@test);
MyCase.Insert(250000,@test);
MyCase.Insert(251001,@test);
MyCase.Insert(252004,@test);
MyCase.Insert(253009,@test);
MyCase.Insert(254016,@test);
MyCase.Insert(255025,@test);
MyCase.Insert(256036,@test);
MyCase.Insert(257049,@test);
MyCase.Insert(258064,@test);
MyCase.Insert(259081,@test);
MyCase.Insert(260100,@test);
MyCase.Insert(261121,@test);
MyCase.Insert(262144,@test);
MyCase.Insert(263169,@test);
MyCase.Insert(264196,@test);
MyCase.Insert(265225,@test);
MyCase.Insert(266256,@test);
MyCase.Insert(267289,@test);
MyCase.Insert(268324,@test);
MyCase.Insert(269361,@test);
MyCase.Insert(270400,@test);
MyCase.Insert(271441,@test);
MyCase.Insert(272484,@test);
MyCase.Insert(273529,@test);
MyCase.Insert(274576,@test);
MyCase.Insert(275625,@test);
MyCase.Insert(276676,@test);
MyCase.Insert(277729,@test);
MyCase.Insert(278784,@test);
MyCase.Insert(279841,@test);
MyCase.Insert(280900,@test);
MyCase.Insert(281961,@test);
MyCase.Insert(283024,@test);
MyCase.Insert(284089,@test);
MyCase.Insert(285156,@test);
MyCase.Insert(286225,@test);
MyCase.Insert(287296,@test);
MyCase.Insert(288369,@test);
MyCase.Insert(289444,@test);
MyCase.Insert(290521,@test);
MyCase.Insert(291600,@test);
MyCase.Insert(292681,@test);
MyCase.Insert(293764,@test);
MyCase.Insert(294849,@test);
MyCase.Insert(295936,@test);
MyCase.Insert(297025,@test);
MyCase.Insert(298116,@test);
MyCase.Insert(299209,@test);
MyCase.Insert(300304,@test);
MyCase.Insert(301401,@test);
MyCase.Insert(302500,@test);
MyCase.Insert(303601,@test);
MyCase.Insert(304704,@test);
MyCase.Insert(305809,@test);
MyCase.Insert(306916,@test);
MyCase.Insert(308025,@test);
MyCase.Insert(309136,@test);
MyCase.Insert(310249,@test);
MyCase.Insert(311364,@test);
MyCase.Insert(312481,@test);
MyCase.Insert(313600,@test);
MyCase.Insert(314721,@test);
MyCase.Insert(315844,@test);
MyCase.Insert(316969,@test);
MyCase.Insert(318096,@test);
MyCase.Insert(319225,@test);
MyCase.Insert(320356,@test);
MyCase.Insert(321489,@test);
MyCase.Insert(322624,@test);
MyCase.Insert(323761,@test);
MyCase.Insert(324900,@test);
MyCase.Insert(326041,@test);
MyCase.Insert(327184,@test);
MyCase.Insert(328329,@test);
MyCase.Insert(329476,@test);
MyCase.Insert(330625,@test);
MyCase.Insert(331776,@test);
MyCase.Insert(332929,@test);
MyCase.Insert(334084,@test);
MyCase.Insert(335241,@test);
MyCase.Insert(336400,@test);
MyCase.Insert(337561,@test);
MyCase.Insert(338724,@test);
MyCase.Insert(339889,@test);
MyCase.Insert(341056,@test);
MyCase.Insert(342225,@test);
MyCase.Insert(343396,@test);
MyCase.Insert(344569,@test);
MyCase.Insert(345744,@test);
MyCase.Insert(346921,@test);
MyCase.Insert(348100,@test);
MyCase.Insert(349281,@test);
MyCase.Insert(350464,@test);
MyCase.Insert(351649,@test);
MyCase.Insert(352836,@test);
MyCase.Insert(354025,@test);
MyCase.Insert(355216,@test);
MyCase.Insert(356409,@test);
MyCase.Insert(357604,@test);
MyCase.Insert(358801,@test);
MyCase.Insert(360000,@test);
MyCase.Insert(361201,@test);
MyCase.Insert(362404,@test);
MyCase.Insert(363609,@test);
MyCase.Insert(364816,@test);
MyCase.Insert(366025,@test);
MyCase.Insert(367236,@test);
MyCase.Insert(368449,@test);
MyCase.Insert(369664,@test);
MyCase.Insert(370881,@test);
MyCase.Insert(372100,@test);
MyCase.Insert(373321,@test);
MyCase.Insert(374544,@test);
MyCase.Insert(375769,@test);
MyCase.Insert(376996,@test);
MyCase.Insert(378225,@test);
MyCase.Insert(379456,@test);
MyCase.Insert(380689,@test);
MyCase.Insert(381924,@test);
MyCase.Insert(383161,@test);
MyCase.Insert(384400,@test);
MyCase.Insert(385641,@test);
MyCase.Insert(386884,@test);
MyCase.Insert(388129,@test);
MyCase.Insert(389376,@test);
MyCase.Insert(390625,@test);
MyCase.Insert(391876,@test);
MyCase.Insert(393129,@test);
MyCase.Insert(394384,@test);
MyCase.Insert(395641,@test);
MyCase.Insert(396900,@test);
MyCase.Insert(398161,@test);
MyCase.Insert(399424,@test);
MyCase.Insert(400689,@test);
MyCase.Insert(401956,@test);
MyCase.Insert(403225,@test);
MyCase.Insert(404496,@test);
MyCase.Insert(405769,@test);
MyCase.Insert(407044,@test);
MyCase.Insert(408321,@test);
MyCase.Insert(409600,@test);
MyCase.Insert(410881,@test);
MyCase.Insert(412164,@test);
MyCase.Insert(413449,@test);
MyCase.Insert(414736,@test);
MyCase.Insert(416025,@test);
MyCase.Insert(417316,@test);
MyCase.Insert(418609,@test);
MyCase.Insert(419904,@test);
MyCase.Insert(421201,@test);
MyCase.Insert(422500,@test);
MyCase.Insert(423801,@test);
MyCase.Insert(425104,@test);
MyCase.Insert(426409,@test);
MyCase.Insert(427716,@test);
MyCase.Insert(429025,@test);
MyCase.Insert(430336,@test);
MyCase.Insert(431649,@test);
MyCase.Insert(432964,@test);
MyCase.Insert(434281,@test);
MyCase.Insert(435600,@test);
MyCase.Insert(436921,@test);
MyCase.Insert(438244,@test);
MyCase.Insert(439569,@test);
MyCase.Insert(440896,@test);
MyCase.Insert(442225,@test);
MyCase.Insert(443556,@test);
MyCase.Insert(444889,@test);
MyCase.Insert(446224,@test);
MyCase.Insert(447561,@test);
MyCase.Insert(448900,@test);
MyCase.Insert(450241,@test);
MyCase.Insert(451584,@test);
MyCase.Insert(452929,@test);
MyCase.Insert(454276,@test);
MyCase.Insert(455625,@test);
MyCase.Insert(456976,@test);
MyCase.Insert(458329,@test);
MyCase.Insert(459684,@test);
MyCase.Insert(461041,@test);
MyCase.Insert(462400,@test);
MyCase.Insert(463761,@test);
MyCase.Insert(465124,@test);
MyCase.Insert(466489,@test);
MyCase.Insert(467856,@test);
MyCase.Insert(469225,@test);
MyCase.Insert(470596,@test);
MyCase.Insert(471969,@test);
MyCase.Insert(473344,@test);
MyCase.Insert(474721,@test);
MyCase.Insert(476100,@test);
MyCase.Insert(477481,@test);
MyCase.Insert(478864,@test);
MyCase.Insert(480249,@test);
MyCase.Insert(481636,@test);
MyCase.Insert(483025,@test);
MyCase.Insert(484416,@test);
MyCase.Insert(485809,@test);
MyCase.Insert(487204,@test);
MyCase.Insert(488601,@test);
MyCase.Insert(490000,@test);
MyCase.Insert(491401,@test);
MyCase.Insert(492804,@test);
MyCase.Insert(494209,@test);
MyCase.Insert(495616,@test);
MyCase.Insert(497025,@test);
MyCase.Insert(498436,@test);
MyCase.Insert(499849,@test);
MyCase.Insert(501264,@test);
MyCase.Insert(502681,@test);
MyCase.Insert(504100,@test);
MyCase.Insert(505521,@test);
MyCase.Insert(506944,@test);
MyCase.Insert(508369,@test);
MyCase.Insert(509796,@test);
MyCase.Insert(511225,@test);
MyCase.Insert(512656,@test);
MyCase.Insert(514089,@test);
MyCase.Insert(515524,@test);
MyCase.Insert(516961,@test);
MyCase.Insert(518400,@test);
MyCase.Insert(519841,@test);
MyCase.Insert(521284,@test);
MyCase.Insert(522729,@test);
MyCase.Insert(524176,@test);
MyCase.Insert(525625,@test);
MyCase.Insert(527076,@test);
MyCase.Insert(528529,@test);
MyCase.Insert(529984,@test);
MyCase.Insert(531441,@test);
MyCase.Insert(532900,@test);
MyCase.Insert(534361,@test);
MyCase.Insert(535824,@test);
MyCase.Insert(537289,@test);
MyCase.Insert(538756,@test);
MyCase.Insert(540225,@test);
MyCase.Insert(541696,@test);
MyCase.Insert(543169,@test);
MyCase.Insert(544644,@test);
MyCase.Insert(546121,@test);
MyCase.Insert(547600,@test);
MyCase.Insert(549081,@test);
MyCase.Insert(550564,@test);
MyCase.Insert(552049,@test);
MyCase.Insert(553536,@test);
MyCase.Insert(555025,@test);
MyCase.Insert(556516,@test);
MyCase.Insert(558009,@test);
MyCase.Insert(559504,@test);
MyCase.Insert(561001,@test);
MyCase.Insert(562500,@test);
MyCase.Insert(564001,@test);
MyCase.Insert(565504,@test);
MyCase.Insert(567009,@test);
MyCase.Insert(568516,@test);
MyCase.Insert(570025,@test);
MyCase.Insert(571536,@test);
MyCase.Insert(573049,@test);
MyCase.Insert(574564,@test);
MyCase.Insert(576081,@test);
MyCase.Insert(577600,@test);
MyCase.Insert(579121,@test);
MyCase.Insert(580644,@test);
MyCase.Insert(582169,@test);
MyCase.Insert(583696,@test);
MyCase.Insert(585225,@test);
MyCase.Insert(586756,@test);
MyCase.Insert(588289,@test);
MyCase.Insert(589824,@test);
MyCase.Insert(591361,@test);
MyCase.Insert(592900,@test);
MyCase.Insert(594441,@test);
MyCase.Insert(595984,@test);
MyCase.Insert(597529,@test);
MyCase.Insert(599076,@test);
MyCase.Insert(600625,@test);
MyCase.Insert(602176,@test);
MyCase.Insert(603729,@test);
MyCase.Insert(605284,@test);
MyCase.Insert(606841,@test);
MyCase.Insert(608400,@test);
MyCase.Insert(609961,@test);
MyCase.Insert(611524,@test);
MyCase.Insert(613089,@test);
MyCase.Insert(614656,@test);
MyCase.Insert(616225,@test);
MyCase.Insert(617796,@test);
MyCase.Insert(619369,@test);
MyCase.Insert(620944,@test);
MyCase.Insert(622521,@test);
MyCase.Insert(624100,@test);
MyCase.Insert(625681,@test);
MyCase.Insert(627264,@test);
MyCase.Insert(628849,@test);
MyCase.Insert(630436,@test);
MyCase.Insert(632025,@test);
MyCase.Insert(633616,@test);
MyCase.Insert(635209,@test);
MyCase.Insert(636804,@test);
MyCase.Insert(638401,@test);
MyCase.Insert(640000,@test);
MyCase.Insert(641601,@test);
MyCase.Insert(643204,@test);
MyCase.Insert(644809,@test);
MyCase.Insert(646416,@test);
MyCase.Insert(648025,@test);
MyCase.Insert(649636,@test);
MyCase.Insert(651249,@test);
MyCase.Insert(652864,@test);
MyCase.Insert(654481,@test);
MyCase.Insert(656100,@test);
MyCase.Insert(657721,@test);
MyCase.Insert(659344,@test);
MyCase.Insert(660969,@test);
MyCase.Insert(662596,@test);
MyCase.Insert(664225,@test);
MyCase.Insert(665856,@test);
MyCase.Insert(667489,@test);
MyCase.Insert(669124,@test);
MyCase.Insert(670761,@test);
MyCase.Insert(672400,@test);
MyCase.Insert(674041,@test);
MyCase.Insert(675684,@test);
MyCase.Insert(677329,@test);
MyCase.Insert(678976,@test);
MyCase.Insert(680625,@test);
MyCase.Insert(682276,@test);
MyCase.Insert(683929,@test);
MyCase.Insert(685584,@test);
MyCase.Insert(687241,@test);
MyCase.Insert(688900,@test);
MyCase.Insert(690561,@test);
MyCase.Insert(692224,@test);
MyCase.Insert(693889,@test);
MyCase.Insert(695556,@test);
MyCase.Insert(697225,@test);
MyCase.Insert(698896,@test);
MyCase.Insert(700569,@test);
MyCase.Insert(702244,@test);
MyCase.Insert(703921,@test);
MyCase.Insert(705600,@test);
MyCase.Insert(707281,@test);
MyCase.Insert(708964,@test);
MyCase.Insert(710649,@test);
MyCase.Insert(712336,@test);
MyCase.Insert(714025,@test);
MyCase.Insert(715716,@test);
MyCase.Insert(717409,@test);
MyCase.Insert(719104,@test);
MyCase.Insert(720801,@test);
MyCase.Insert(722500,@test);
MyCase.Insert(724201,@test);
MyCase.Insert(725904,@test);
MyCase.Insert(727609,@test);
MyCase.Insert(729316,@test);
MyCase.Insert(731025,@test);
MyCase.Insert(732736,@test);
MyCase.Insert(734449,@test);
MyCase.Insert(736164,@test);
MyCase.Insert(737881,@test);
MyCase.Insert(739600,@test);
MyCase.Insert(741321,@test);
MyCase.Insert(743044,@test);
MyCase.Insert(744769,@test);
MyCase.Insert(746496,@test);
MyCase.Insert(748225,@test);
MyCase.Insert(749956,@test);
MyCase.Insert(751689,@test);
MyCase.Insert(753424,@test);
MyCase.Insert(755161,@test);
MyCase.Insert(756900,@test);
MyCase.Insert(758641,@test);
MyCase.Insert(760384,@test);
MyCase.Insert(762129,@test);
MyCase.Insert(763876,@test);
MyCase.Insert(765625,@test);
MyCase.Insert(767376,@test);
MyCase.Insert(769129,@test);
MyCase.Insert(770884,@test);
MyCase.Insert(772641,@test);
MyCase.Insert(774400,@test);
MyCase.Insert(776161,@test);
MyCase.Insert(777924,@test);
MyCase.Insert(779689,@test);
MyCase.Insert(781456,@test);
MyCase.Insert(783225,@test);
MyCase.Insert(784996,@test);
MyCase.Insert(786769,@test);
MyCase.Insert(788544,@test);
MyCase.Insert(790321,@test);
MyCase.Insert(792100,@test);
MyCase.Insert(793881,@test);
MyCase.Insert(795664,@test);
MyCase.Insert(797449,@test);
MyCase.Insert(799236,@test);
MyCase.Insert(801025,@test);
MyCase.Insert(802816,@test);
MyCase.Insert(804609,@test);
MyCase.Insert(806404,@test);
MyCase.Insert(808201,@test);
MyCase.Insert(810000,@test);
MyCase.Insert(811801,@test);
MyCase.Insert(813604,@test);
MyCase.Insert(815409,@test);
MyCase.Insert(817216,@test);
MyCase.Insert(819025,@test);
MyCase.Insert(820836,@test);
MyCase.Insert(822649,@test);
MyCase.Insert(824464,@test);
MyCase.Insert(826281,@test);
MyCase.Insert(828100,@test);
MyCase.Insert(829921,@test);
MyCase.Insert(831744,@test);
MyCase.Insert(833569,@test);
MyCase.Insert(835396,@test);
MyCase.Insert(837225,@test);
MyCase.Insert(839056,@test);
MyCase.Insert(840889,@test);
MyCase.Insert(842724,@test);
MyCase.Insert(844561,@test);
MyCase.Insert(846400,@test);
MyCase.Insert(848241,@test);
MyCase.Insert(850084,@test);
MyCase.Insert(851929,@test);
MyCase.Insert(853776,@test);
MyCase.Insert(855625,@test);
MyCase.Insert(857476,@test);
MyCase.Insert(859329,@test);
MyCase.Insert(861184,@test);
MyCase.Insert(863041,@test);
MyCase.Insert(864900,@test);
MyCase.Insert(866761,@test);
MyCase.Insert(868624,@test);
MyCase.Insert(870489,@test);
MyCase.Insert(872356,@test);
MyCase.Insert(874225,@test);
MyCase.Insert(876096,@test);
MyCase.Insert(877969,@test);
MyCase.Insert(879844,@test);
MyCase.Insert(881721,@test);
MyCase.Insert(883600,@test);
MyCase.Insert(885481,@test);
MyCase.Insert(887364,@test);
MyCase.Insert(889249,@test);
MyCase.Insert(891136,@test);
MyCase.Insert(893025,@test);
MyCase.Insert(894916,@test);
MyCase.Insert(896809,@test);
MyCase.Insert(898704,@test);
MyCase.Insert(900601,@test);
MyCase.Insert(902500,@test);
MyCase.Insert(904401,@test);
MyCase.Insert(906304,@test);
MyCase.Insert(908209,@test);
MyCase.Insert(910116,@test);
MyCase.Insert(912025,@test);
MyCase.Insert(913936,@test);
MyCase.Insert(915849,@test);
MyCase.Insert(917764,@test);
MyCase.Insert(919681,@test);
MyCase.Insert(921600,@test);
MyCase.Insert(923521,@test);
MyCase.Insert(925444,@test);
MyCase.Insert(927369,@test);
MyCase.Insert(929296,@test);
MyCase.Insert(931225,@test);
MyCase.Insert(933156,@test);
MyCase.Insert(935089,@test);
MyCase.Insert(937024,@test);
MyCase.Insert(938961,@test);
MyCase.Insert(940900,@test);
MyCase.Insert(942841,@test);
MyCase.Insert(944784,@test);
MyCase.Insert(946729,@test);
MyCase.Insert(948676,@test);
MyCase.Insert(950625,@test);
MyCase.Insert(952576,@test);
MyCase.Insert(954529,@test);
MyCase.Insert(956484,@test);
MyCase.Insert(958441,@test);
MyCase.Insert(960400,@test);
MyCase.Insert(962361,@test);
MyCase.Insert(964324,@test);
MyCase.Insert(966289,@test);
MyCase.Insert(968256,@test);
MyCase.Insert(970225,@test);
MyCase.Insert(972196,@test);
MyCase.Insert(974169,@test);
MyCase.Insert(976144,@test);
MyCase.Insert(978121,@test);
MyCase.Insert(980100,@test);
MyCase.Insert(982081,@test);
MyCase.Insert(984064,@test);
MyCase.Insert(986049,@test);
MyCase.Insert(988036,@test);
MyCase.Insert(990025,@test);
MyCase.Insert(992016,@test);
MyCase.Insert(994009,@test);
MyCase.Insert(996004,@test);
MyCase.Insert(998001,@test);
MyCase.Insert(1000000,@test);
MyCase.Insert(1002001,@test);
MyCase.Insert(1004004,@test);
MyCase.Insert(1006009,@test);
MyCase.Insert(1008016,@test);
MyCase.Insert(1010025,@test);
MyCase.Insert(1012036,@test);
MyCase.Insert(1014049,@test);
MyCase.Insert(1016064,@test);
MyCase.Insert(1018081,@test);
MyCase.Insert(1020100,@test);
MyCase.Insert(1022121,@test);
MyCase.Insert(1024144,@test);
MyCase.Insert(1026169,@test);
MyCase.Insert(1028196,@test);
MyCase.Insert(1030225,@test);
MyCase.Insert(1032256,@test);
MyCase.Insert(1034289,@test);
MyCase.Insert(1036324,@test);
MyCase.Insert(1038361,@test);
MyCase.Insert(1040400,@test);
MyCase.Insert(1042441,@test);
MyCase.Insert(1044484,@test);
MyCase.Insert(1046529,@test);
str((now-myTime)*10e4:2:3,ts);
writeln('Inserting '+ts+'sec.');
myTime:=now;
for i:=0 to 1046529 do
MyCase.DoIt(i*i);
str((now-myTime)*10e4:2:3,ts);
writeln('DoIt '+ts+'sec.');
MyCase.Destroy;
end.
У меня получилось: (без оптимизаций, насколько я понимаю чтоб получить оптимизированый fpc-stl надо пересобрать компилятор, недосук)
зы. исходник теста обычного касе не пролез изза ограничений длины сообщения. вставлю следующим сообщением. Напишите тут ченить, чтоб у меня было новое сообщение