Что быстрее - массив или словарь (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 |
заслуженный участник
Сейчас нет на сайте
| Ну так протестируй и замерь производительность Народу тоже интересно узнать будет
Всё гениальное просто. И хреново работает.
|
|
| |
Сибирский | Дата: Среда, 28 Сентября 2011, 20:13 | Сообщение # 6 |
Javatar
Сейчас нет на сайте
| это... Странно! Хотя, там массивы из разных типов? Добавлено (28.09.2011, 20:13) --------------------------------------------- Ведь элемент списка - структура из значения и ссылки на подобную структуру. Т.е. обращение к Н-ному элементу осуществляется Н переходами по ссылкам, что долго, а в массиве идет обращение к индексированной ячейке памяти. Быстро. Странно, странно.
|
|
| |
AGENTX001 | Дата: Среда, 28 Сентября 2011, 20:16 | Сообщение # 7 |
почётный гцупер
Сейчас нет на сайте
| Сибирский, ну вот что поделаешь 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++.
Как мало вы знаете, как громко вы судите...
|
|
| |
|
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 |
|
| |