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

 



 
        
[SA-MP] Hosted Tab (120)
DieSeL 24.09.2017 20:30
GTA IV Mod Installer (5)
jasper2 23.09.2017 02:50
 





Рекомендуем:
Добавить IP: 95.172.59.51:7777





Последние Файлы 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
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
Скачать GTA SAMP 0.3.7 - Кл... 20.07.2015
Страница 1 из 11
Модератор форума: 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 из 11
Поиск:





 


 


 
Хостинг от uCoz SAMP-RUS.COM