Показать сообщение отдельно
Старый 31.08.2007, 15:52   #1
jimon
 
Сообщений: n/a
Jimon Cached Linked List

когда-то давно я писал про недостатки LinkedList здесь :
http://boolean.name/showthread.php?t=4135

в общем наконецто дошли ручки зделать его кешируемым
http://jimon.boolean.name/downloads/linkedlist.rar (4 кб)

в общем результаты не кешируемого :
DebugLog:InitOk .. let's run
DebugLog:Run Test1 ... the best optimization
DebugLog:Test1 Time : 1.2745000012218952
DebugLog:Run Test2 ... the simply code .. can found in some code
DebugLog:Time2 Time : 334.37460000067949
DebugLog:Run Test3 ... optimization of test2 variant
DebugLog:Time3 Time : 0.66239999979734421
DebugLog:Run Test4 ... the hard style coding
DebugLog:Test4 Time : 629.71640000119805
DebugLog:End ... thnx
и результаты кешируемого списка :
DebugLog:InitOk .. let's run
DebugLog:Run Test1 ... the best optimization
DebugLog:Test1 Time : 0.45730000175535679
DebugLog:Run Test2 ... the simply code .. can found in some code
DebugLog:Time2 Time : 1.4646999984979630
DebugLog:Run Test3 ... optimization of test2 variant
DebugLog:Time3 Time : 0.76120000146329403
DebugLog:Run Test4 ... the hard style coding
DebugLog:Test4 Time : 0.74560000002384186
DebugLog:End ... thnx
ничего в своей программе менять не надо
полная совместимость с некешируемым списком
кешируемость можно даже вырубить флагом в модуле и ребилдить его

после замены модуля зделайте ребилд всего BRL !

идинственый случай когда кешируемый модуль будет проигрывать :
если в листе куча обьектов,
мы постоянно добавляем или удаляем обьекты из листа,
и юзаем при етом ValueAtIndex со значениями 1 - 10 ...
тогда возможно производительность будет 70-80% от не кешируемого
в остальных случаях рост до 1000%

в jAqua ето дало рост в 7 мс в общем цикле

ps. пользуйтесь
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
BlackOut (03.07.2010)