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

 



 
          





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





Последние Файлы 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
Модератор форума: AXE, Weddew  
Что быстрее?
Matt_TuckДата: Вторник, 13.03.2012, 18:28 | Сообщение # 1
Местный
Группа: I'm V.I.P.
Сообщений: 710
Награды: 11
Город: Брянск
Репутация: 461
Замечания: 20%
Статус:
Как-то появилось у меня желание перевести мод на mysql, всё же удобно и функционально. Поставил плагин MySQL Plugin R6-2 by BlueG, перевёл весь мод и решил провести замер скорости и честно говоря я обалдел.

mysql
База данных находится на компьютере.
Code
stock LoadHouse()
{
   new query[400],idx,time = GetTickCount();
   mysql_query("SELECT * FROM `HouseInfo`");
   mysql_store_result();
   printf("[Загрузка Домов] Всего строк - %d ",mysql_num_rows());
   if(mysql_num_rows() > 0)
   {
    while (idx < sizeof(HouseInfo))
    {
     mysql_fetch_row(query);
     sscanf(query, "p<|>iffffffs[24]s[24]iiiiiiiiiiiii",
           HouseInfo[idx][idHouse],
     HouseInfo[idx][hEntrancex],
     HouseInfo[idx][hEntrancey],
     HouseInfo[idx][hEntrancez],
     HouseInfo[idx][hExitx],
     HouseInfo[idx][hExity],
     HouseInfo[idx][hExitz],
     HouseInfo[idx][hOwner],
     HouseInfo[idx][hDiscription],
     HouseInfo[idx][hValue],
     HouseInfo[idx][hHel],
     HouseInfo[idx][hArm],
     HouseInfo[idx][hInt],
     HouseInfo[idx][hLock],
     HouseInfo[idx][hOwned],
     HouseInfo[idx][hRent],
     HouseInfo[idx][hRentabil],
     HouseInfo[idx][hTakings],
     HouseInfo[idx][hVec],
     HouseInfo[idx][hVcol1],
     HouseInfo[idx][hVcol2],
     HouseInfo[idx][hLevel]);
     idx++;
    }
   }
   printf("[Загрузка Домов]:Было загружено - %d потрачено %d (ms)", idx,GetTickCount() - time);
   return 1;
}


[18:21:38] [Загрузка Домов] Всего строк - 294
[18:21:38] [Загрузка Домов]:Было загружено - 294 потрачено 424 (ms)

файлы
Code
stock LoadProperty()
{
   new strFromFile2[256],text[512],time = GetTickCount(),idx;
   new File: file = fopen("[House]/property.cfg", io_read);
   if (file)
   {
    while (idx < sizeof(HouseInfo))
    {
     fread(file, strFromFile2);
     sscanf(strFromFile2, "p<,>ffffffiiiiiis[24]s[24]iiiiiiiiiiiiiii",
     HouseInfo[idx][hEntrancex],
     HouseInfo[idx][hEntrancey],
     HouseInfo[idx][hEntrancez],
     HouseInfo[idx][hExitx],
     HouseInfo[idx][hExity],
     HouseInfo[idx][hExitz],
     HouseInfo[idx][hHealthx],
     HouseInfo[idx][hHealthy],
     HouseInfo[idx][hHealthz],
     HouseInfo[idx][hArmourx],
     HouseInfo[idx][hArmoury],
     HouseInfo[idx][hArmourz],
     HouseInfo[idx][hOwner],
     HouseInfo[idx][hDiscription],
     HouseInfo[idx][hValue],
     HouseInfo[idx][hHel],
     HouseInfo[idx][hArm],
     HouseInfo[idx][hInt],
     HouseInfo[idx][hLock],
     HouseInfo[idx][hOwned],
     HouseInfo[idx][hRooms],
     HouseInfo[idx][hRent],
     HouseInfo[idx][hRentabil],
     HouseInfo[idx][hTakings],
     HouseInfo[idx][hVec],
     HouseInfo[idx][hVcol1],
     HouseInfo[idx][hVcol2],
     HouseInfo[idx][hDate],
     HouseInfo[idx][hLevel]);
     if(HouseInfo[idx][hOwned] == 0)
     {
      format(text,sizeof(text),"{FF0000}* {FF9000}Дом № {FFFFFF}%d {FF0000}*\n{FFFFFF}Продается\n Цена:{FF9000}[$%d] \n {FFFFFF}Описание:{FF9000}[%s] \n {FFFFFF}Уровень:{FF9000}[%d]",idx, HouseInfo[idx][hValue],HouseInfo[idx][hDiscription], HouseInfo[idx][hLevel]);
      HousePickup[idx] = CreateDynamicPickup(1273, 2, HouseInfo[idx][hEntrancex], HouseInfo[idx][hEntrancey], HouseInfo[idx][hEntrancez],-1);
      HouseIcon[idx] = CreateDynamicMapIcon(HouseInfo[idx][hEntrancex],HouseInfo[idx][hEntrancey],HouseInfo[idx][hEntrancez],31,0,-1,-1,-1,200.0);
     }
     else
     {
         if(HouseInfo[idx][hRentabil] == 0)
         {
       format(text,sizeof(text),"{FF0000}* {FF9000}Дом № {FFFFFF}%d {FF0000}*\n{FFFFFF}Владелец:{FF9000}[%s]\n{FFFFFF}Уровень:{FF9000}[%d]",idx,HouseInfo[idx][hOwner],HouseInfo[idx][hLevel]);
      }
      else
      {
          format(text,sizeof(text),"{FF0000}* {FF9000}Дом № {FFFFFF}%d {FF0000}*\n{FFFFFF}Владелец:{FF9000}[%s]\n{FFFFFF}Уровень:{FF9000}[%d]\n{FFFFFF}Аренда:{FF9000}[$%d]",idx,HouseInfo[idx][hOwner],HouseInfo[idx][hLevel],HouseInfo[idx][hRent]);
      }
      HouseIcon[idx] = CreateDynamicMapIcon(HouseInfo[idx][hEntrancex],HouseInfo[idx][hEntrancey],HouseInfo[idx][hEntrancez],32,0,-1,-1,-1,200.0);
      HousePickup[idx] = CreateDynamicPickup(1272, 2, HouseInfo[idx][hEntrancex], HouseInfo[idx][hEntrancey], HouseInfo[idx][hEntrancez],-1);
     }
     HouseLabel[idx] = CreateDynamic3DTextLabel(text,0xFFFFFFFF,HouseInfo[idx][hEntrancex],HouseInfo[idx][hEntrancey],HouseInfo[idx][hEntrancez]+1,20.0);
     idx++;
    }
      
   }
   fclose(file);
                printf("[Загрузка Домов]:Было загружено - %d потрачено %d (ms)", idx,GetTickCount() - time);
   return 1;
}

[Загрузка Домов]:Было загружено - 294 потрачено 6 (ms)

Может я что-то не так делал? Просто как-то разница очень велика и у меня резко отпало желание переходить на мускул.



Не в возрасте дело,а в культуре общения и уровне интеллектуального развития

Если вам лижут жопу, не обольщайтесь, возможно это для смазки.

Twitter - Follow Me ;)
Подписываемся на мой Паблик


Сообщение отредактировал Matt_Tuck - Вторник, 13.03.2012, 18:29
EakwarpДата: Вторник, 13.03.2012, 18:32 | Сообщение # 2
Мастер джэдай
Группа: Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус:
А кто сказал что мускул непременно быстрее файлов? Если использовать элементарное чтение файла, без всяких ини ридеров, и прочих заморочек, в максимально оптимизированном виде, то оно конечно будет быстрее чем ждать ответа от, например удаленной базы данных. Мускул это удобный способ хранения и использования информации, позволяющий быстро получить доступ до требуемых данных.


More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.


Valakas Roleplay on Twitter

Платные консультации, разработка, в ICQ. Дорого.
Matt_TuckДата: Вторник, 13.03.2012, 20:48 | Сообщение # 3
Местный
Группа: I'm V.I.P.
Сообщений: 710
Награды: 11
Город: Брянск
Репутация: 461
Замечания: 20%
Статус:
Eakwarp, Ясно. Спасибо.

Значит если и ставить мускул, то только из-за удобства работы с ним, в других случаях лучше файлы.



Не в возрасте дело,а в культуре общения и уровне интеллектуального развития

Если вам лижут жопу, не обольщайтесь, возможно это для смазки.

Twitter - Follow Me ;)
Подписываемся на мой Паблик
EakwarpДата: Вторник, 13.03.2012, 20:51 | Сообщение # 4
Мастер джэдай
Группа: Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус:
Quote (Matt_Tuck)
Значит если и ставить мускул, то только из-за удобства работы с ним

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



More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.


Valakas Roleplay on Twitter

Платные консультации, разработка, в ICQ. Дорого.
AirKiteДата: Вторник, 13.03.2012, 22:03 | Сообщение # 5
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
Quote (Eakwarp)
Сейчас 21 век, мускул пора уже использовать для любых данных

Сказал как отрезал.

Matt_Tuck, Во многом зависит мощность MySQL сервера, выделяемых ему ресурсов и т.д. Суть не столько в скорости, сколько в функционале и возможностях. Если бы ты загружал или сохранял 1 дом, то MySQL мог бы оказаться гораздо быстрее... (К тому же твой способ с sscanf УГ). Далее сейчас наверное все MySQL плагины поддерживают отдельный поток, а это означает что не нужно останавливать основной поток дожидаясь ответа mysql сервера и т.д.

В общем подумай сам. Нужно ли тебе на пол секунды быстрее запускать сервер и жертвовать всем тем, что ты имеешь при MySQL? ;)



[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record
ВеликсДата: Суббота, 17.03.2012, 14:42 | Сообщение # 6
Мастер джэдай
Группа: Модераторы
Сообщений: 3931
Награды: 287
Город: Мухосранск
Репутация: 8429
Замечания: 0%
Статус:
Закрыто.


[cut=freestyle]
ПРИНЕСЛА СОРОКА В РОТЕ ПРИВОРОТ ,
СВЯЗАЛАСЬ НА ШЕЕ ЛОЗА И БЫЛ ПОЛНЫЙ ПИ**ЕЦ,
ОСЕНЬ С ЗИМОЙ, ЛЕТО С ВЕСНОЙ,
ГУСЬ С ЛИСОЙ, ЕБ**ИСЬ ВО ТЬМЕ НОЧНОЙ.
УЗЕЛ ЗАВЯЗАЛСЯ, ПЕПЕЛ РАЗМЕТАЛСЯ И ЛИСА ЗАБЕРЕМЕНЕЛА.
ВМЕСТЕ ВЕК ВЕКОВАТЬ, ПУТУ НЕ РАЗВЯЗАТЬ.
ТРАВА ПЕРЕПЛЕТИСЬ, УЗЕЛ ЗАВОРОЖИСЬ.
ЛЕНАРУ ДАЙ УМА И ЛЕНУ
НА ВЕЛЕ НЕ ОТРАЗИСЬ,ЕБ*СЬ ЕБ*СЬ ЕБ*СЬ
© Хасан
[/cut]
  • Страница 1 из 1
  • 1
Поиск:





 


 


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