Четверг, 25 Апреля 2024, 14:17

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Тест производительности 39dll (Или сколько сокетов держит библиотека для начала обрывов)
Тест производительности 39dll
VinchensooДата: Пятница, 13 Мая 2011, 16:07 | Сообщение # 1
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Итак, сабж.

Услышал мнение, что при большой нагрузке на сервер сокеты 39dll начинают рваться.

Верить в это не особо хотелось, начал писать свой тестер.

Результаты тестов на локалхосте- до 700 держит стабильно, дальше надоело.

Результаты тестов через интернет(хамачи)- сокеты начинают терять коннект при подключении 40+ сокетов.

2 варианта:
1. Косяк в моем тестере(может быть, ибо писался на скорую руку, хотя алг. достаточно прост)
2. 39dll неконкурентноспособна.

Второй пункт более чем прискорбный, поэтому вопрос, делал ли кто-нибудь тесты производительности 39dll(объем трафика, кол-во коннектов и прочее) и каковы были результаты? Можно ли получить ваши тестеры?

Свой я на данный момент отправил на перепиливание, выложу, когда закончу.

Внимание: сервер и клиент моего тестера написаны на delphi. Производительность гм, в моем случае, ни при чем


QvantДата: Пятница, 13 Мая 2011, 18:35 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
Vinchensoo, поставь ручную отрисовку экрана set_automatic_draw(0) а через шагов десять можно и больше перерисовывай экран вручную screen_redraw() производительность ГМ существенно возрастёт ... и тогда посмотри сколько сокетов он сможет держать
VinchensooДата: Пятница, 13 Мая 2011, 18:38 | Сообщение # 3
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Qvant, сервер и клиент написаны на delphi, производительность гм ни при чем.

Тему создал в этом разделе, т.к. чаще всего 39dll используется именно на гм.

Да и проблема немного не в том. Сокеты могут отваливаться только из-за косяков интернета или самой библиотеки. Объем данных мелкий(на 1000 клиентов около 10 кб), т.к. что интернет исключаем.

Значит, или косяк в тестере, или косяк в либе)


nilremДата: Пятница, 13 Мая 2011, 18:47 | Сообщение # 4
Просветленный разум
Сейчас нет на сайте
А как ты сам к себе подключался?
Создал 700 клиентов?


Windmill 2

WindMill 2D Game Engine
QvantДата: Пятница, 13 Мая 2011, 18:49 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
а разве к делфи нет специально написаных длл ?

PS. Я на LabView с родными библиотеками открывал на локалхосте примерно 4000-5000 слушателей за минуту и никаких обрывов не было.
Правда при прывышении 4000-5000 вылетала ошибка переполнения буфера ...

39dll к LabView не цеплял потомучто не видел смысла

Zombie98Дата: Пятница, 13 Мая 2011, 18:50 | Сообщение # 6
частый гость
Сейчас нет на сайте
Vinchensoo, скорее второе
я вот не очень знаком с написанием библиотек, но не ужели нет конкуретной библиотеки для гм, с более высокой надежностью?


Мой сайт - Фан сайт Minecraft
VinchensooДата: Пятница, 13 Мая 2011, 18:53 | Сообщение # 7
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (nilrem)
А как ты сам к себе подключался? Создал 700 клиентов?

Да, мне же заниматься вообще больше нечем =)

Программа тестер, создает заданное количество сокетов и прозванивает их в определенном порядке.

Грубо говоря, говорим 700, она создает 700 сокетов и потом циклом ползает и проверяет их, отсылая данные и принимая в ответ по id сокета.

Т.е. осуществляется реальным обмен данными, и мы проверяем так активность сокетов.

Вообще, Нил, ты же не разбираешься в сетевом программировании? wink

Сейчас вношу в алгоритм новые фишки, например, время на прозвон сокета, если ответа нету.


QvantДата: Пятница, 13 Мая 2011, 18:54 | Сообщение # 8
почти ветеран
Сейчас нет на сайте
Возможно 39dll хранит данные в какихто ячейках буфере и ожидает и если он переполняется то клиент отваливается ...
да кстати на один порт вешал клиентов или на разные ?
VinchensooДата: Пятница, 13 Мая 2011, 18:57 | Сообщение # 9
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (Qvant)
а разве к делфи нет специально написаных длл ?

Есть сеть даже в игровом движке, на котором моя игра, но она кушает мне мозг, т.к. близко к winapi, вроде бы
Quote (Qvant)
PS. Я на LabView с родными библиотеками открывал на локалхосте примерно 4000-5000 слушателей за минуту и никаких обрывов не было. Правда при прывышении 4000-5000 вылетала ошибка переполнения буфера ...

Что есть labView?
Quote (Zombie98)
я вот не очень знаком с написанием библиотек, но не ужели нет конкуретной библиотеки для гм, с более высокой надежностью?

Мм, а разве 39dll для гм мало? На гм сервер вряд ли выдержит больше 50 человек из-за скорости исполнения кода.
Quote (Qvant)
Возможно 39dll хранит данные в какихто ячейках буфере и ожидает и если он переполняется то клиент отваливается ... да кстати на один порт вешал клиентов или на разные ?

Возможно, но почему тогда на локалхосте спокойно держит и 1000 слушателей? =) Вряд ли дело в буфере.
На 1 порт вешал все


ЙакудДата: Пятница, 13 Мая 2011, 19:14 | Сообщение # 10
участник
Сейчас нет на сайте
Vinchensoo, Гм сервер можно сделать более производительнее, если взять библу Thread.dll. Кажется, она так называется. Так вот, она "эмулирует" многопоточность в ГМ. Создает второй поток, в котором скорость комнаты ~ 900. Она не загружает основное окно игры.
Помнится, держали один серв на ГМ с этой библой. Не упал и работал довольно быстро.
Ща попробую найти у себя эту библу с примерами..


"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0
VinchensooДата: Пятница, 13 Мая 2011, 19:19 | Сообщение # 11
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (Йакуд)
Vinchensoo, Гм сервер можно сделать более производительнее, если взять библу Thread.dll. Кажется, она так называется. Так вот, она "эмулирует" многопоточность в ГМ. Создает второй поток, в котором скорость комнаты ~ 900. Она не загружает основное окно игры. Помнится, держали один серв на ГМ с этой библой. Не упал и работал довольно быстро. Ща попробую найти у себя эту библу с примерами..

Чукча не читатель, чучка писатель?
Quote (Vinchensoo)
Внимание: сервер и клиент моего тестера написаны на delphi. Производительность гм, в моем случае, ни при чем

Многопоточность в дельфи есть, что ЯП.

Но дело даже не в этом. Сервер должен нормально работать и в одном потоке, не такие бешенные нагрузки на него


QvantДата: Пятница, 13 Мая 2011, 19:21 | Сообщение # 12
почти ветеран
Сейчас нет на сайте
LabVIEW — язык графического программирования, в котором для создания приложений используются графические образы (иконки , ) вместо текстового кода. В США признаный промышленный стандарт.

Например код при котором открывается новое TCP соединение при кликонии мышки по кнопке Boolean будит выглядеть так :

VinchensooДата: Суббота, 14 Мая 2011, 07:15 | Сообщение # 13
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Qvant, понятно, мне это вряд ли поможет =)

Ну так что, из всех, кто работает на 39dll, никто не делал тесты производительности что ли?


zxc76Дата: Четверг, 02 Июня 2011, 10:46 | Сообщение # 14
39DLL Rulezz
Сейчас нет на сайте
Quote (Vinchensoo)
Ну так что, из всех, кто работает на 39dll, никто не делал тесты производительности что ли?

Я бы сделал, если бы понимал хотя бы в теории- как это сделать)))

Добавлено (02.06.2011, 10:46)
---------------------------------------------
Отбой, уже понял что и как)))))

Quote (Vinchensoo)
Результаты тестов через интернет(хамачи)- сокеты начинают терять коннект при подключении 40+ сокетов.

Я не так понял, или через хамачи 40 "игроков" серв не выдерживает?


PHP
VinchensooДата: Четверг, 02 Июня 2011, 15:38 | Сообщение # 15
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (zxc76)
Я не так понял, или через хамачи 40 "игроков" серв не выдерживает?

Ты не понял о чем в принципе говорил =)

Речь идет не о тестировании сервера(работа которого зависит от кучи ньансов), а о тестировании именно движка библиотеки.

Я его уже провел, даже обещал статью Филу =)

Итог:

4 000 активных сокетов одновременно, обрывов не было, иногда пакеты замедлялись(но не более, чем у 3 сокетов из 4000).

Проверка проводилась пакетами по 256 + 4 байта, что не мало smile В принципе, при просчете онлайна для игр можно такими данными оперировать.

Так что все норм. Позже дам результаты теста в виде статьи и кода. Сервер и клиент писались на дельфи.

Разница между сервером и клиентом по расстоянию была достаточно большой, разные страны, плюс у клиента был не самый стабильный инет- отсюда замедление пакетов. Остальное нормально все =)


ФилДата: Четверг, 02 Июня 2011, 15:43 | Сообщение # 16
Томатный революционер
Сейчас нет на сайте
Vinchensoo, т.е. библиотека выдержала испытание и ее можно юзать без мысли о поиске альтернативы? Это хорошо ^^
VinchensooДата: Четверг, 02 Июня 2011, 15:52 | Сообщение # 17
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote
Vinchensoo, т.е. библиотека выдержала испытание и ее можно юзать без мысли о поиске альтернативы? Это хорошо ^^


У нее есть один существенный недостаток, она делалась, видимо, именно под гм, поэтому приложение, которое использует 39dll нельзя откомпилировать под Unix системы.

Это вызывает дополнительные расходы при аренде сервера или покупке ПО под собственный- серверные версии винды стоят недешево =)

Вариант запускать сервер на линукс под эмулятором пахнет идиотизмом^^.

Правда, я не проверял это, но вероятность близка к 100%, т.к. гуглил и смотрели исходные коды 39dll с другом- под линь не пойдет =(


ФилДата: Четверг, 02 Июня 2011, 16:11 | Сообщение # 18
Томатный революционер
Сейчас нет на сайте
Vinchensoo, ага, это печально :'(
Ну пока альтернатив нет (а так ли это?), будем пользоваться 39dll.


Сообщение отредактировал Фил - Четверг, 02 Июня 2011, 16:11
zxc76Дата: Четверг, 02 Июня 2011, 16:14 | Сообщение # 19
39DLL Rulezz
Сейчас нет на сайте
Сделал тестер для ГМ+39длл.
Сервер был на ГМ...
Один клиент отправляет чаще чем раз в секунду 4 байта на серв.
При локал хосте, еле доходило до 100 подключений- у меня фпс был около 1-2/30 dry комп тормозит)
У меня не один мультиплеер не работает нормально, на пол секунды где-то какое-то эфирное молчание появляется. Я даже не видел как Век Бивней работает))) Поэтому пинг не проверял.

Провел тест по инету.
Сервер был у doxl.

Подключений: 100
ФПС у серва: около 17-20
Серв принимал 1.17кб
Серв отправлял: 142.60кб

Подключений: 150
ФПС у серва: около 20
Серв принимал 1,76кб
Серв отправлял: 325.94кб

Подключений: 200
ФПС у серва: около 6
Серв принимал 2.33кб
Серв отправлял: 548.51 кб


PHP

Сообщение отредактировал zxc76 - Четверг, 02 Июня 2011, 16:26
VinchensooДата: Четверг, 02 Июня 2011, 16:17 | Сообщение # 20
Злобный социопат с комплексом Бога
Сейчас нет на сайте
zxc76, ну тут уже, скорей всего, все зависит от гм. Мой сервер был на дельфи и в консоли, поэтому более эффективно, возможно smile

Quote (Фил)
Ну пока альтернатив нет (а так ли это?), будем пользоваться 39dll.

по легкости я не видел альтернатив =)


Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Тест производительности 39dll (Или сколько сокетов держит библиотека для начала обрывов)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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