forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Модули для BlitzMax (http://forum.boolean.name/forumdisplay.php?f=105)
-   -   Jimon Cached Linked List (http://forum.boolean.name/showthread.php?t=4309)

jimon 31.08.2007 15:52

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. пользуйтесь :)

SBJoker 31.08.2007 20:10

Re: Jimon Cached Linked List
 
Знаешь что, джимон, ты бы это на офф форуме бмакса запостил, с требованием включить это в стандартную поставку блитца... т.к. дельное улучшение.

jimon 31.08.2007 22:05

Re: Jimon Cached Linked List
 
SBJoker
у меня там акка нету :(

jimon 01.09.2007 00:56

Re: Jimon Cached Linked List
 
так ... случайно была допущена утечка памяти :)
все оперативно исправил ... качать там же

jimon 25.11.2007 23:30

Re: Jimon Cached Linked List
 
лол ... но один криворукий код гуи завалил все же мой tlist
нашлась жалкая бага :) точнее не бага
а возможность завалить список :
list.remove(obj)
list.addlast(obj)
list.remove(obj)
list.addlast(obj)
list.remove(obj)
list.addlast(obj)
в итоге в листе появляется несколько копий етого обьекта

исправления в коде TList :

вот ето :
Код:

        Method CacheChangeList()
                If Not EnableCache Then Return
               
                ValueAtIndexCacheChange = 1
                CountCacheChange = 1
        End Method

заменить на вот ето :
Код:

        Method CacheChangeList()
                If Not EnableCache Then Return
               
                ValueAtIndexCacheChange = 1
                CountCacheChange = 1

                FreeFindLinkCache()
        End Method

исправленую версию мона качать в первом посте :)

cheaters-hater 01.04.2010 22:10

Ответ: Jimon Cached Linked List
 
ссылка умерла. перезалей плз.

Randomize 01.04.2010 22:37

Ответ: Jimon Cached Linked List
 
http://server.jimon.org/Downloads/Sa...linkedlist.rar

Черный крыс 02.07.2010 14:16

Ответ: Jimon Cached Linked List
 
При попытке сохранить лист в файл - начинает матом ругатся модуль отражения, дебаг показывает, что инфа в одном из линков - битая. Официальный TList сохраняется в файл без проблем.

Просьба автора исправить данный недочет.

Dream 02.07.2010 15:08

Ответ: Jimon Cached Linked List
 
ну да, jimon щас всё бросит и будет исправлять код 3 летней давности

Черный крыс 02.07.2010 21:19

Ответ: Jimon Cached Linked List
 
уже исправил =)

jimon 02.07.2010 22:58

Ответ: Jimon Cached Linked List
 
Diablo1909
выложи свою версию :) просто скорее всего за 3 года сам list поменялся в бмаксе


Часовой пояс GMT +4, время: 13:02.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot