Понедельник, 23 Декабря 2024, 21:45

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Что быстрее - массив или словарь (gm8)
AGENTX001Дата: Среда, 28 Сентября 2011, 19:51 | Сообщение # 1
почётный гцупер
Сейчас нет на сайте
Всем привет, собственно вопрос в следующем -
Что быстрее - массив или словарь?
Информация требуется для написания хорошо оптимизированного сервера.
VinchensooДата: Среда, 28 Сентября 2011, 19:56 | Сообщение # 2
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Вопрос с подвохом. На гм8 сервера не написать оптимизированного)

СибирскийДата: Среда, 28 Сентября 2011, 20:01 | Сообщение # 3
Javatar
Сейчас нет на сайте
Массив, как и в любом другом языке.

AGENTX001Дата: Среда, 28 Сентября 2011, 20:05 | Сообщение # 4
почётный гцупер
Сейчас нет на сайте
Vinchensoo, ну всёже) Чисто гипотетически - если список (хз почему) быстрее массива, то почемубы словарю не быть быстрее массива??)

Добавлено (28.09.2011, 20:05)
---------------------------------------------
Сибирский, ну вот в гамаке список быстрее массива) И от хрен знает прчему, но это факт!)


Сообщение отредактировал AGENTX001 - Среда, 28 Сентября 2011, 20:06
GECKДата: Среда, 28 Сентября 2011, 20:10 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
Ну так протестируй и замерь производительность smile Народу тоже интересно узнать будет smile

Всё гениальное просто. И хреново работает.
СибирскийДата: Среда, 28 Сентября 2011, 20:13 | Сообщение # 6
Javatar
Сейчас нет на сайте
это... Странно! Хотя, там массивы из разных типов?

Добавлено (28.09.2011, 20:13)
---------------------------------------------
Ведь элемент списка - структура из значения и ссылки на подобную структуру. Т.е. обращение к Н-ному элементу осуществляется Н переходами по ссылкам, что долго, а в массиве идет обращение к индексированной ячейке памяти. Быстро.
Странно, странно.


AGENTX001Дата: Среда, 28 Сентября 2011, 20:16 | Сообщение # 7
почётный гцупер
Сейчас нет на сайте
Сибирский, ну вот что поделаешь wink
GECK, ок, ждите!)
VinchensooДата: Среда, 28 Сентября 2011, 20:30 | Сообщение # 8
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Что-то мне подсказывает, что тест доставит кучу лулзов. Ждемс.

AGENTX001Дата: Среда, 28 Сентября 2011, 20:32 | Сообщение # 9
почётный гцупер
Сейчас нет на сайте
Ну вот пытаюсь померять) Инетересная особенность - у массив (1-мерный) макс кол-во элементов - 32к) словарь норм оперирует с 0,5m
СибирскийДата: Среда, 28 Сентября 2011, 20:40 | Сообщение # 10
Javatar
Сейчас нет на сайте
Тут еще такая вещь: если мы дизасемблируем программу на Делфи, например, то получем тонну ненужного кода. Если переведем ГМ программу в Дельфи - также получим тонну лишнего кода. Т.е. всё зависит от степени опьянения Овермарса во время написания этих типов данных. Этим и объясняется неподчинение законам физики.

AGENTX001Дата: Среда, 28 Сентября 2011, 20:45 | Сообщение # 11
почётный гцупер
Сейчас нет на сайте
Итак дамы и господа!!)
Массив VS Словарь
Массив -VIN!!!
0.000004 против 0.000017! Быстрее более чем в 4 раза!! Причём программа выполняла 320 000 операций!!!

Добавлено (28.09.2011, 20:45)
---------------------------------------------
http://zalil.ru/31775748

СибирскийДата: Среда, 28 Сентября 2011, 20:46 | Сообщение # 12
Javatar
Сейчас нет на сайте
Массив вин? А сколько градусов? Кавказских?
Я к тому, что win


lumennesДата: Среда, 28 Сентября 2011, 20:47 | Сообщение # 13
Убийца Diablo
Сейчас нет на сайте
В GM использование структур данных лучше, чем просто массивов и они быстрее ИМХО.
А так лучше писать сервер на чем-нибудь мощнее, чем GML, например Delphi или C++.


Как мало вы знаете, как громко вы судите...
noTformaTДата: Среда, 28 Сентября 2011, 20:50 | Сообщение # 14
Ukrainian independent game developer
Сейчас нет на сайте
массивы всегда быстрее списков.

Кто не верите, почитайте кнута, а еще лучше, посмотрите на структуру массива и словаря. Подсказка - все дело в ключе smile


@noTformaT
lumennesДата: Среда, 28 Сентября 2011, 20:54 | Сообщение # 15
Убийца Diablo
Сейчас нет на сайте
посмотрел пример AGENTX001, убедило.

Как мало вы знаете, как громко вы судите...
AGENTX001Дата: Среда, 28 Сентября 2011, 20:57 | Сообщение # 16
почётный гцупер
Сейчас нет на сайте
Quote (lumennes)
и они быстрее ИМХО.

Ну какое нафик ИМХО, если я проверял?)
Quote (AGENTX001)
0.000004 против 0.000017

Добавлено (28.09.2011, 20:57)
---------------------------------------------
Так, мне Фил, zxc76 и Сегер, в один голос утверждали, что Список быстрее массива... Проверим!

СибирскийДата: Среда, 28 Сентября 2011, 20:59 | Сообщение # 17
Javatar
Сейчас нет на сайте
Мэн, прочитай еще раз пост нотФормата, мой и свой!

AGENTX001Дата: Среда, 28 Сентября 2011, 21:05 | Сообщение # 18
почётный гцупер
Сейчас нет на сайте
Всё, моя совесть спокойна!!!
Список - 0.000006

Добавлено (28.09.2011, 21:05)
---------------------------------------------
Сибирский, noTformaT, я всегда в это верил))

СибирскийДата: Среда, 28 Сентября 2011, 21:07 | Сообщение # 19
Javatar
Сейчас нет на сайте
Достаточно быстро... Значит, это не связные списки... Дельфи не очень знаю, там есть такой тип, как list?

noTformaTДата: Среда, 28 Сентября 2011, 21:13 | Сообщение # 20
Ukrainian independent game developer
Сейчас нет на сайте
Quote (AGENTX001)
Сибирский, noTformaT, я всегда в это верил)

Я не знаю синтаксис ГМ.

Ассоциативный массив, он же просто Dictionaries, он же Map, он же Hash, он же словарь, имеет два элемента, пару "ключ" и "значение". Чтобы получить например в си++ значение соответствующее какому-то ключу, то надо выполнить метод Find(ключ).
Даже на этом этапе понятно что вызывается метод, а как известно, вызов метода - это одна из самых долгих операций, а если еще представить что в в этом методе еще реализуется поиск, то тут сомнения пропадут сразу.

С массивом все просто, нет вызова метода, нет поиска по ключу.


@noTformaT


Сообщение отредактировал noTformaT - Среда, 28 Сентября 2011, 22:50
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг