Вторник, 16 Апреля 2024, 15:57

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Что быстрее - массив или словарь (gm8)
Что быстрее - массив или словарь (gm8)
AGENTX001Дата: Среда, 28 Сентября 2011, 21:20 | Сообщение # 21
почётный гцупер
Сейчас нет на сайте
noTformaT,
Quote (noTformaT)
Я не знаю синтаксис ГМ.

Оч на Си похоже)


noTformaT, ну не знаю... Тесты провёл, резы предоставил)) Тем не мение преимущества списка перед массивом на лицо - удобство и т. д. Мне напр постоянно нужно знать размер эээ контейнера данных, в массиве приходится юзать цикл, перебирать всю матрицу, а в списке - одна функция и готово) Надо провести более серьёзные тесты...
СибирскийДата: Среда, 28 Сентября 2011, 21:25 | Сообщение # 22
Javatar
Сейчас нет на сайте
AGENTX001, вот чем тебя Java EE для сервера не устроила? Там этого гемора меньше

AGENTX001Дата: Среда, 28 Сентября 2011, 21:31 | Сообщение # 23
почётный гцупер
Сейчас нет на сайте
Сибирский, 0_о??? Ну портируй мне под яву 39dll? Хотя мож не парится, у меня для делфи есть... вот толку тока ноль, всё делфак качнуть нимагу))
СибирскийДата: Среда, 28 Сентября 2011, 21:33 | Сообщение # 24
Javatar
Сейчас нет на сайте
AGENTX001, я посмотрю, но она должна длл открывать. А 39длл сокеты юзает?

noTformaTДата: Среда, 28 Сентября 2011, 21:36 | Сообщение # 25
Ukrainian independent game developer
Сейчас нет на сайте
Quote (AGENTX001)
Тем не мение преимущества списка перед массивом на лицо - удобство и т. д. Мне напр постоянно нужно знать размер эээ контейнера данных, в массиве приходится юзать цикл, перебирать всю матрицу, а в списке - одна функция и готово) Надо провести более серьёзные тесты...

Массивы и ассоциативные массивы используются для разных вещей. Вторые используются для более абстрактной формы записи данных. Например

my_home = {'street': ленина, 'number': 23, 'count': 3, 'data_build': 10.20.1990}

Писал на питоне так как работаю на нем. В данном случае у нас есть инкапсулированные данные, со следующими ключами и значениями:
улица - ленина
дом - 23
кол.жильцов - 3
дата постройки - 10.20.1990

Как видно очень удобно...

в случае с массивом нам надо было бы писать свой алгоритм выборки данных из массива [ 'ленина', 23,3, 10.20.1990], да и не во всех яп есть не типизированные яп.


@noTformaT
СибирскийДата: Среда, 28 Сентября 2011, 21:40 | Сообщение # 26
Javatar
Сейчас нет на сайте
Или, например, настройки.

AGENTX001Дата: Среда, 28 Сентября 2011, 21:49 | Сообщение # 27
почётный гцупер
Сейчас нет на сайте
Quote (Сибирский)
39длл сокеты юзает

да

Добавлено (28.09.2011, 21:49)
---------------------------------------------
noTformaT, я думал это строгая типизация...

СибирскийДата: Среда, 28 Сентября 2011, 21:51 | Сообщение # 28
Javatar
Сейчас нет на сайте
AGENTX001, ну тогда юзай сокеты сразу на java

lumennesДата: Среда, 28 Сентября 2011, 22:10 | Сообщение # 29
Убийца Diablo
Сейчас нет на сайте
лучше на сервер на C++ писать, более стабильный и держит больше клиентов чем java

Как мало вы знаете, как громко вы судите...
СибирскийДата: Среда, 28 Сентября 2011, 22:21 | Сообщение # 30
Javatar
Сейчас нет на сайте
lumennes, от игры еще зависит. Сделать сервер на с++ труднее, да и учить его тяжелее. Это пока пишешь демо, все круто, а потом, когда потребуется физика - будет фейл. Если сделать обработку коллизий у клиентов - будет море хакеров

TimKruzДата: Среда, 28 Сентября 2011, 22:45 | Сообщение # 31
старожил
Сейчас нет на сайте
Конечно, массивы обрабатываются быстрее динамических структур, по-моему, это очевидно, если знаешь, как они устроены. cool
Quote (AGENTX001)
Тем не мение преимущества списка перед массивом на лицо - удобство и т. д.

По-моему, наоборот, это массив использовать гораздо удобнее - он полностью перед тобой, бери любую ячейку и оперируй с ней. А в списке, чтобы взять какую-нибудь ячейку, нужно "листать" этот список. Список одним концом - вообще ужас... Однако преимущество списков - память выделяется динамически, ячейки в памяти могут быть разбросаны как угодно. А для массива ещё перед началом работы программы (или процедуры) выделяется память, и при том монолитная, без разрывов. Хотя ещё есть динамические массивы, их можно растягивать и сжимать... Короче, для они разных целей.

На счёт сервера - я тут давненько видел тему, там кто-то уже писал сервер для GM-игры, на Delphi... не знаю, как получилось...

Quote (AGENTX001)
Ну портируй мне под яву 39dll?

Так ведь 39dll - это обычная библиотека же? huh Динамические библиотеки могут подключаться к программе на любом языке программирования... Однако нужно иметь заголовочный файл, в котором описаны все экспортируемые функции библиотеки, вот этот файл как раз для каждого языка свой...
Quote (AGENTX001)
у меня для делфи есть

Ну если и Delphi, и Java хорошо знаешь, то что тебе мешает переписать заголовочный файл с одного языка на другой? huh Или хотя бы нужные тебе функции.


lumennesДата: Среда, 28 Сентября 2011, 22:54 | Сообщение # 32
Убийца Diablo
Сейчас нет на сайте
Короче, кому нужен клиент GM и сервер C++ он тут. Лично я использовал массивы на сервере.

Как мало вы знаете, как громко вы судите...
AGENTX001Дата: Среда, 28 Сентября 2011, 22:54 | Сообщение # 33
почётный гцупер
Сейчас нет на сайте
Quote (TimKruz)
Ну если и Delphi, и Java хорошо знаешь

Ни то ни другое)
TimKruz, чувак, не путай стек и список!!
Quote (Сибирский)
когда потребуется физика - будет фейл

кх-кх, у нас 2д игры, какая нафиг физика?)
СибирскийДата: Среда, 28 Сентября 2011, 23:00 | Сообщение # 34
Javatar
Сейчас нет на сайте
AGENTX001, тим все правильно сказал. А физика - столкновения, например.

noTformaTДата: Среда, 28 Сентября 2011, 23:02 | Сообщение # 35
Ukrainian independent game developer
Сейчас нет на сайте
Quote (TimKruz)
А в списке, чтобы взять какую-нибудь ячейку, нужно "листать" этот список. Список одним концом - вообще ужас... Однако преимущество списков - память выделяется динамически, ячейки в памяти могут быть разбросаны как угодно. А для массива ещё перед началом работы программы (или процедуры) выделяется память, и при том монолитная, без разрывов.

Словари по своей структуре это хеш таблицы, там поиск выполняется по хешу, вернее имея хеш рассчитывается адрес ячейки через хеш-функцию. В словарях нет прогона по всем элементам, как например поиск в последовательном списке, или в стеке ))) В двух словах - словари это что то среднее между динамическим классом - dynamic class Object, и динамической записью.

Quote (TimKruz)
По-моему, наоборот, это массив использовать гораздо удобнее - он полностью перед тобой, бери любую ячейку и оперируй с ней.

А если это типизированный массив, то хранить в нем структуру дома (описана выше) становиться трудоемкой задачей.

Quote (TimKruz)
Так ведь 39dll - это обычная библиотека же? Динамические библиотеки могут подключаться к программе на любом языке программирования... Однако нужно иметь заголовочный файл, в котором описаны все экспортируемые функции библиотеки, вот этот файл как раз для каждого языка свой...

в том то прикол, что в джаве нет такого понятия как заголовочный файл, а так как это "песочная" технология, то использовать в ней сторонние длл практически не возможно )))


@noTformaT
СибирскийДата: Среда, 28 Сентября 2011, 23:05 | Сообщение # 36
Javatar
Сейчас нет на сайте
Т.е. словарь - аналог Hashtable?

noTformaTДата: Среда, 28 Сентября 2011, 23:09 | Сообщение # 37
Ukrainian independent game developer
Сейчас нет на сайте
Quote (Сибирский)
Т.е. словарь - аналог Hashtable?

а как же, Хеш-таблица это интерфейс, а словарь - частный случай включающий в себя этот интерфейс.


@noTformaT
СибирскийДата: Среда, 28 Сентября 2011, 23:14 | Сообщение # 38
Javatar
Сейчас нет на сайте
noTformaT, projava.net/Glava6/Index11.htm
это же класс! А словарь - абстрактный класс


noTformaTДата: Среда, 28 Сентября 2011, 23:21 | Сообщение # 39
Ukrainian independent game developer
Сейчас нет на сайте
Quote (Сибирский)
noTformaT, projava.net/Glava6/Index11.htm
это же класс! А словарь - абстрактный класс

а, ты об этом. Я про глобальное. Хеш-таблица и Ассоциативный массив, не связанное с JDK

Quote (Сибирский)
projava.net/Glava6/Index11.htm

Класс Hashtable расширяет абстрактный класс Dictionary. А вот в джаве наоборот. Ассоциативный массив является интерфейсом к хеш-таблице smile


@noTformaT
СибирскийДата: Среда, 28 Сентября 2011, 23:23 | Сообщение # 40
Javatar
Сейчас нет на сайте
noTformaT, а, ну все, просто недопоняли друг друга:)

Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Что быстрее - массив или словарь (gm8)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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