Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2013-12-30, 11:02


The Fake







Wiek: 29
Na forum: 5964 dni
Posty: 36
Nick w MP: isoa.fake

Piwa: 17

Respekt: 50

Czy mo?liwym jest, ?eby jedno zapytanie do SQLite zajmowa?o 400ms?

Kod:

[10] [join] asd has joined the server (0:dadas)
[10] SQLite UPDATE: 399ms
[10] [part] asd has left the server (0:1)


Kod:

new tick2 = GetTickCount();
new Query[256];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof name);
format(Query,sizeof(Query),"UPDATE `GRACZ` SET `KILLS` = '%d', `DEATHS` = '%d', `DAMAGE` = '%.0f', `EXP` = '%d',`EXPLEVEL` = '%d',`TOTALEXP` = '%d', `SKIN` = '%d', `WEATHER` = '%d', `TIME` = '%d' WHERE `NICK` = '%s'", PlayerKills[playerid], PlayerDeaths[playerid], TotalDamage[playerid], P_DATA[playerid][exp], P_DATA[playerid][explevel],P_DATA[playerid][totalexp], skin[playerid], weather[playerid], czas[playerid], name);
db_free_result(db_query(Konta, Query));
printf("SQLite UPDATE: %dms", GetTickCount() - tick2);


Da rade zoptymalizowa? czy jednak musze przej?? na inny system zapisu?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-12-30, 11:19


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

"The Fake" napisał/a:

Czy mo?liwym jest, ?eby jedno zapytanie do SQLite zajmowa?o 400ms?

Kod:

[10] [join] asd has joined the server (0:dadas)
[10] SQLite UPDATE: 399ms
[10] [part] asd has left the server (0:1)


Kod:

new tick2 = GetTickCount();
new Query[256];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof name);
format(Query,sizeof(Query),"UPDATE `GRACZ` SET `KILLS` = '%d', `DEATHS` = '%d', `DAMAGE` = '%.0f', `EXP` = '%d',`EXPLEVEL` = '%d',`TOTALEXP` = '%d', `SKIN` = '%d', `WEATHER` = '%d', `TIME` = '%d' WHERE `NICK` = '%s'", PlayerKills[playerid], PlayerDeaths[playerid], TotalDamage[playerid], P_DATA[playerid][exp], P_DATA[playerid][explevel],P_DATA[playerid][totalexp], skin[playerid], weather[playerid], czas[playerid], name);
db_free_result(db_query(Konta, Query));
printf("SQLite UPDATE: %dms", GetTickCount() - tick2);


Da rade zoptymalizowa? czy jednak musze przej?? na inny system zapisu?


Dziwna sprawa. o.O U?ywasz najnowszej wersji serwera? Z tego co pami?tam, o ile w?a?ciwie w og?le pami?tam, bo noc by?a d?uga a ja mia?em helikopter na bani; to zapytania przesy?ane przez SQLite by?y p?ynne i szybkie, wi?c ni wiem. Sprawdze za chwile ten kod i dam Ci zna?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-12-30, 11:21


The Fake







Wiek: 29
Na forum: 5964 dni
Posty: 36
Nick w MP: isoa.fake

Piwa: 17

Respekt: 50

Moge jedynie doda? ?e serwer jest lokowany w Niemczech na hostingu Pukawka.pl. Pingi r??ni? si? o jakie? 20-30ms, wi?c nie s?dze ?eby to by?o g??wnym powodem..

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-12-30, 11:58


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

Oke. Straci?em 30 minut swojego **** ?ycia, ale kod wykonuje si? w 0ms. Co? masz *****, albo masz kompa ze ?redniowiecza.

Kod:

new DB:USERDB;
new PlayerKills[MAX_PLAYERS] = {55, ...};
new PlayerDeaths[MAX_PLAYERS] = {55, ...};
new TotalDamage[MAX_PLAYERS] = {55, ...};
enum enumik {
exp,
explevel,
totalexp
};
new P_DATA[MAX_PLAYERS][enumik];
new skin[MAX_PLAYERS] = {55, ...};
new czas[MAX_PLAYERS] = {55, ...};
new weather[MAX_PLAYERS];
new name[20] = "StachuDombrowski";
new Query[256] = "UPDATE `GRACZ` SET `KILLS` = '%d', `DEATHS` = '%d', `DAMAGE` = '%.0f', `EXP` = '%d',`EXPLEVEL` = '%d',`TOTALEXP` = '%d', `SKIN` = '%d', `WEATHER` = '%d', `TIME` = '%d' WHERE `NICK` = '%s'";

public OnGameModeInit()
{
USERDB = db_open("users.db");
db_free_result(db_query(USERDB, "CREATE TABLE IF NOT EXISTS `GRACZ` ('NICK' VARCHAR(20), 'KILLS' INTEGER DEFAULT 0, 'DEATHS' INTEGER, 'DAMAGE' FLOAT, 'EXP' INTEGER, 'EXPLEVEL' INTEGER, 'TOTALEXP' INT(8), 'SKIN' int(3), WEATHER int(4), TIME int(10))"));
db_free_result(db_query(USERDB, "INSERT INTO `GRACZ` (`NICK`, `KILLS`, `DEATHS`, `DAMAGE`, `EXP`, `EXPLEVEL`, `TOTALEXP`, `SKIN`, `WEATHER`, `TIME`) VALUES ('StachuDombrowski', 0, 0, 0, 0, 0, 0, 0, 0, 0)"));
runner();
return true;
}

forward runner();
public runner()
{
new playerid = 0;
new tick2 = GetTickCount();
format(Query,sizeof(Query), Query, PlayerKills[playerid], PlayerDeaths[playerid], TotalDamage[playerid], P_DATA[playerid][exp], P_DATA[playerid][explevel], P_DATA[playerid][totalexp], skin[playerid], weather[playerid], czas[playerid], name);
printf("SQLite UPDATE: %dms", GetTickCount() - tick2);
printf("%s", Query);
db_free_result(db_query(USERDB, Query));
return true;
}


[ Dodano: 2013-12-30, 12:02 ]
proof.png w zestawie gratis



Postaw piwo autorowi tego posta
 

 
Tagi: sqlite :: laguje :: tak?
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku