06:45
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: Dima-kun  
Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » Сравнение кода сервера SAMP на mxINI и на MySql
Сравнение кода сервера SAMP на mxINI и на MySql
BrianДата: Среда, 22.05.2013, 03:28 | Сообщение # 1
Группа: Media-ProGroup
Сообщений: 1337
Награды: 17
Город: Odessa
Репутация: 871
Замечания: 0%
Статус:
В общем так как мускуль работает быстрее и с ним возится проще, чем с mxINI, то запощу доказательство своих слов. Переход на мускул обещает увеличить скорость загрузки объектов, домов, транспорта и многое другое на SAMP сервере.

Показываю как считываются данные на mxINI:

[pwn]new string[64];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(string, sizeof(string), "Players/%s.ini", playername);
new File = ini_openFile(string);
if(!File)
{
ini_getString(File,"Key",PlayerInfo[playerid][pPass]);
ini_getInteger(File,"Level",PlayerInfo[playerid][pLevel]);
ini_getFloat(File,"pIp",PlayerInfo[playerid][pIp]);
} [/pwn]

А вот как на MySql:

[pwn]new query[144];
format(query,sizeof(query), "SELECT * FROM "TABLE_ACCOUNT" WHERE name = '%s' LIMIT 1",sendername(playerid));
mysql_function_query(dbHandle, query, true, "LoadAcc", "i", playerid);// Тут мы вызываем паблик лоадэсс с параметром плейерАйди, включаем кэширование[/pwn]

Рассмотрим dbHandle - это подключение к MySql, его возвращает mysql_connect

[pwn]new dbHandle; // Вставляем в начало мода
// Вставляем в OnGameModeInit
dbHandle = mysql_connect(Хост, Логин, База, Пароль); // Тут мы подключаемся к MySql [/pwn]

query - с помощью этой переменной форматируется запрос
true/false - кэширование включаем и выключаем. true - Включить false - Выключить. Используется только для функции SELECT
LoadAcc - вызывается public загрузки аккаунта при входе на SAMP сервер i - Integer(Числовое значение) s - String(Строка) f - Float(Значение с точкой)

После этого создаём сам public загрузки:

[pwn]forward LoadAcc(playerid);
public LoadAcc(playerid)
{
new rows, fields; // На время создаются переменные
cache_get_data(rows, fields); // Узнаём количество строк и столбцов с помощью кэширования
if(rows) // При наличии аккаунта идём далее...
{
new temp[64];
cache_get_field_content(0, "Key", PlayerInfo[playerid][pPass]); // Строки записываются напрямую
cache_get_field_content(0, "Level", temp); PlayerInfo[playerid][pLevel] = strval(temp); // Делается только в случае, если у вас числовое значение %i, Integer
cache_get_field_content(0, "pIp", temp); PlayerInfo[playerid][pIp] = floatstrl(temp); // Делается только в случае, если у вас число с точкой, то-есть %f, Float
}
return true; // Очистка кэша
} [/pwn]

В принципе сложность одинаковая, но вот у мускула плюс в быстроте. Так что есть смысл ;)



Вольнодумцы не зависят от чужого мнения, они имеют своё. Они стойкие люди, не слабые и не подвержены чужому влиянию.
KlebitДата: Среда, 22.05.2013, 04:40 | Сообщение # 2
Уверенный в себе
Группа: Пользователи
Сообщений: 265
Награды: 0
Город: None
Репутация: -31
Замечания: 60%
Статус:
чем обусловлено использование cache get feild content со strval & floatstr, а не cache_get_field_content_int и cache_get_field_content_float?
BorogДата: Среда, 22.05.2013, 11:04 | Сообщение # 3
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1362
Награды: 43
Город: Москва
Репутация: 1249
Замечания: 20%
Статус:
Цитата (Brian)
floatstrl(temp)

floatstr(temp)



Silver Break
http://s-break.ru/
http://vk.com/sbreak
[RD]ChezДата: Среда, 22.05.2013, 11:32 | Сообщение # 4
Мастер джэдай
Группа: Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус:
забавно.
что за дешевый хостинг, на котором проходили тесты?
мускул сам по себе работает на файлах+ram, также как и mxini
сравнивать их странно и глупо.
mxini - обертка над файловыми операциями с загрузкой файлов в оперативку. выполняет загрузку и сохранение, а также строковые операции и fseek взятые в api amx машины. узкое место - скорость ram/кол-во свободных квантов времени многопроцессорного сервера, а если учесть, что amx жрет только одно ядро одного процессора вообще должно дать нормальному программисту понять, что все узкие операции нужно проводить в asm/c++ скомпилированном плагине с учетом многопоточности.
mysql - изначально умеет работать с несколькими ядрами и оптимизирован в конвеерном распределении в 70% случаев использования в sa-mp.

все равно, что сравнивать рыбу и мясо

Добавлено (22.05.2013, 11:32)
---------------------------------------------
кстати на системе с btrfs мускул просрал бы в этом тесте


1 час моей работы стоит минимум 800 рублей для срочных работ.
Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS.
Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы.
Немного ассемблер.
Ох**тельный верстальщик какб.

Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^

chezrd@gmail.com
lance@chez-lab.ru
Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » Сравнение кода сервера SAMP на mxINI и на MySql
  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua