Warden
:::...
offline
Опыт:
26,106Активность: |
DLS (Data lists System)
Data Lists System - очень удобная игрушка для любителей оптимизации. Прием, который я в ней использовал, известен уже давно, так что это не очередной велосипед (© Jon).
Если вы не знали, то знайте, что такому игровому объекту, как location – можно прикрепить целых два объекта или числа с помощью нескольких хитрых приемов. Конечно, эта система не заменит вам кэш, но сократит его использование вдвое и оптимизирует ваш код на 50%. А так же даст много преимуществ, таких как прикрепить объекту два объекта. Преимущества системы будут зависеть от того, как вы будете ее использовать – где вы будете хранить ваши data lists (точки) – в кэше или в массивах. Первоначально система разработана для массивов, т.к один массив типа location может использоваться для любого handle и быть удвоен до 16384 объектов на один массив! Вообщем описывать подробно не стану, но вкратце опишу основные функции : » function InitLocationData takes integer x, integer y returns location Создает data list(location) и записывает в него два объекта(числа) (Используется для переменных) » function function SetLocationData takes location loc, integer x, integer y returns nothing Изменяет данные указанной точки » function SetLocationXData takes location loc, integer x returns nothing Изменяет данные X указанной тички » function SetLocationYData takes location loc, integer x returns nothing Изменяет данные Y указанной тички » function GetLocationXData takes location loc returns integer Возвращает данные записанные в X указанной точки » function GetLocationYData takes location loc returns integer Возвращает данные записанные в Y указанной точки Остальные функции служебные и описания в этой теме не требуют, но стоит взглянуть на карту пример. Если вы сразу что-нибудь не поняли, не опускайте руки – спрашивайте, и извините за такую сырую карту-пример… |
30.08.2007, 09:28 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Alex_Hell
Mapmaker 'N' Programmer
offline
Опыт:
6,885Активность: |
Warden, я тут посмотрел твою систему...работает она в точности как SCV, тока в SCV данные записываются в кэш, а тут, как я понял, нужно в переменную...принцып один и тот же - RB...ну в принцыпе твоя система позволяет записать не 2 значения в 2 переменные(X,Y), а 2 значения в одну переменную(location)...конечно вариант, но я все-таки буду тальше юзать SCV...думаю, другие тоже.
|
30.08.2007, 10:08 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
невижу преимещуств пред кешем... я бы несказал что это работает быстрее... |
30.08.2007, 10:12 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
df Hunter
Нападатель
offline
Опыт:
5,749Активность: |
лисапед, в кастер системе такое есть :D сейчас я точно скажу, насколько он быстрей/медленней кэша(вроде быстрей) |
30.08.2007, 10:16 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Warden
:::...
offline
Опыт:
26,106Активность: |
Jon - быстрее... - спроси у Vexorian-а
|
30.08.2007, 10:16 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
может и быстре.. но сам факт использования функций при возвращении/запеси снижают скорость... нужно юать арифмет. действия онли, тогда быстро будет |
30.08.2007, 10:17 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Warden
:::...
offline
Опыт:
26,106Активность: |
df Hunter - в кастер системе немного подругому... но принцип тот же. Систему я делал сам и точно не помню, что в кастер системе... поню только, что там груда ненужного кода.
Warden добавил: Jon - ты ведь сам против кэша - а для массивов эта система незаменима... - просто нужно немного подругому приподнести... |
30.08.2007, 10:19 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
для динамичесого (не статичного) выделения ячеек масива для сопостовления кокомунибудь обьекту достаточно думаю размера 500 на всю карту...
для динамечного я юзаю одну систему.. для статичного другую... но это уже другая история Jon добавил: Warden будет оптимальнее соидинить 2 масива через ифы, чем делать через точки |
30.08.2007, 10:22 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
df Hunter
Нападатель
offline
Опыт:
5,749Активность: |
кэш уходит в сторону, у меня получилось так, что о_О от 20 до 40 раз локации быстрей массивов |
30.08.2007, 10:39 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Цитата:
O_O а ты как проверяеш производительность если не секрет? |
|
30.08.2007, 10:41 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
df Hunter
Нападатель
offline
Опыт:
5,749Активность: |
Цитата:
JAPI StopWatchTimer df Hunter добавил: Цитата:
ты думаешь я сам поверил? :), неа. я еще раз 15 перепроверил df Hunter добавил: З.Ы. проверка шла на запись + чтение |
||
30.08.2007, 10:56 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
увелечение массивов даже в два раза кешь незаменит=/ а вообще идея понравилась=) |
30.08.2007, 13:13 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
вообщем безусловно всё здесь фигня...
1) конечно это медленей массивов (не слушайте идиотский сказаки... В ВАРЕ НЕТУ НИЧЕГО БЫСТРЕЙ ПЕРЕМЕНЫХ И МАССИВОВ !) 2) оно чуть быстрей кеша 3) обсалютный бред который ничего не делает. iNfraNe по крйней мере знал что он делал как здесь видно автор ничего не знал что он делал. Цитата:
|
|
30.08.2007, 14:25 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
df Hunter
Нападатель
offline
Опыт:
5,749Активность: |
в моем тесте был глюк, поэтому он ошибочный, location медленней в 4 раза массивов(это минимум) |
30.08.2007, 14:40 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Alex_Hell
Mapmaker 'N' Programmer
offline
Опыт:
6,885Активность: |
+ каждый раз при записи данных с помощью твоей системы создается новая локация(2 переменных real)...такчто лучше юзать либо SCV, либо обычные переменные! |
30.08.2007, 14:54 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
df Hunter
Нападатель
offline
Опыт:
5,749Активность: |
по теме:
варден убери лучше РБ функции i2r и получения локаций, там не всё корректно с ними, у меня из-за этого была ошибка теста offtop: Alex_Hell про подпись function Code2I takes code callback returns integer return callback return 0 endfunction тут код не вызывается, поэтому я думаю не callback,а func, смени |
30.08.2007, 15:20 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Warden
:::...
offline
Опыт:
26,106Активность: |
Ладно, можно забить на эту идею... |
30.08.2007, 15:37 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|