[Arutelu] Kuidas laadida autosi andmebaasist
#1
Tere!

Teen hetkel nullist auto süsteemi, aga märkasin et autode laadimisel ja uuendamisel võtab kõvasti aega.. Kasutan siis loopi ja MAX_VEHICLES.

Tulemused:
GM-i töölepannes laeb kõik autod:
Code:
Lae_Autod()
{
    new Tick = GetTickCount();
    for (new i; i < MAX_VEHICLES; i++)
    {
        MS_LaeAuto(i);
    }
    printf("Laadimine võttis aega %i ms", GetTickCount() - Tick);
}
Võttis aega:
Code:
Laadimine võttis aega 3773 ms

Uuendamine siis:
Code:
Uuend_Autod()
{
    new Tick = GetTickCount();
    for(new i; i < MAX_VEHICLES; i++)
    {
        if(MS_KasAutoOlemas(i) != 0)
        {
            printf("Auto ID %d on olemas", i);
            MS_UuendaAuto(i);
        }
    }
    printf("Uuendamine võttis aega %i ms", GetTickCount() - Tick);
}
võttis aega:
Code:
Uuendamine võttis aega 5008 ms

Oskab keegi nõu anda kuidas seda aega vähendada? Või kuidas oleks parem teha?

Niisiis, panin kõikidele funksioonidele ajavõtu vahele.

Tulemused:

MS_LaeAuto(AutoID) tulemus (1 auto laadimine):
Code:
[09/02/2014 15:23:39] Auto ID: 12 võttis aega 12 ms
[09/02/2014 15:23:39] Auto ID: 13 võttis aega 13 ms

Lae_Autod() Tulemus (Kõikide autode laadimine kokku):
Code:
[09/02/2014 15:23:42] Laadimine võttis aega 3277 ms

MS_UuendaAuto(AutoID) tulemus (1 auto uuendamine):
Code:
[09/02/2014 15:24:32] Auto ID: 12 uuendamine võttis aega: 1 ms
[09/02/2014 15:24:32] Auto ID: 13 uuendamine võttis aega: 1 ms

MS_KasAutoOlemas tulemus (kõikide autode vaatamine kas andmed olemas):
Code:
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 1 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 4 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 4 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 1 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 1 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 3 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
[09/02/2014 15:24:32] MS_KasAutoOlemas funksioon võtab aega 2 ms
jne.. 2000 x

MS_UuendaAuto(AutoID) tulemus (1 auto kohta):
Code:
[09/02/2014 15:24:32] Auto ID: 12 uuendamine võttis aega: 1 ms
[09/02/2014 15:24:32] Auto ID: 13 uuendamine võttis aega: 1 ms

Uuend_Autod() tulemus (Kõikide autode uuendamine kokku):
Code:
[09/02/2014 15:24:38] Uuendamine võttis aega 5588 ms

NB! Andmebaasis 2 autot kokku ainult mida laadida ja uuendada

Muutsin siis ära, nimelt autot tehes on funksioonis:
Code:
ViimaneAutoID = CreateVehicle(AutoData[AutoID][Mudel],AutoData[AutoID][PosX],AutoData[AutoID][PosY],AutoData[AutoID][PosZ],AutoData[AutoID][PosA],AutoData[AutoID][Toon1],AutoData[AutoID][Toon2], 100);

ning uuendamisel:
Code:
Uuend_Autod()
{
    new Tick = GetTickCount();
    for(new i; i < ViimaneAutoID; i++)
    {
        printf("Kontrollib id: %d", i);
        if(MS_KasAutoOlemas(i) != 0)
        {
            printf("Auto ID %d on olemas", i);
            MS_UuendaAuto(i);
        }
    }
    printf("Laadimine võttis aega %i ms", GetTickCount() - Tick);
}

GM-i tööle hakkamisel läheb kül aega aga uuedamine.. vaadake ise Big Grin
Code:
Laadimine võttis aega 2886 ms
Uuendamine võttis aega 14 ms
Vaata lisaks!! Minu tehtud õpetused ja funksioonid mida olen teinud ja kokku kogunud!!

SIIT


By Geto244
Reply
#2
Ja mis on sinu auto laadimise funktsiooni sisu?
Sex, Drums and Rock'n'Roll
Reply
#3
Point on see et kokku võtab see aega nii kaua kuna loopib MAX_VEHICLE-it (2000) korda. Laadimisel elaks üle veel kui GM käivitub. Aga vahepael kui uuendada näiteks kui panna uuendama siis läheb kole kaua. Ülejäänud funksioonid ei võta erilist aega. Laadimisel võtab auto kohta umbkaudu 14 ms. Sest seal on nii andmete laadimine, auto tegemine ja muude parameetrite paika panemine.
Vaata lisaks!! Minu tehtud õpetused ja funksioonid mida olen teinud ja kokku kogunud!!

SIIT


By Geto244
Reply
#4
Ma eeldan, et su laadimise ja salvestamise funktsioonid pole kõige optimaalsemad. Kas sa kasutad MySQLi või tavalisi faile?
Sex, Drums and Rock'n'Roll
Reply
#5
Mysql on. Hetkel teen süsteemi ümber. Ei uuenda õiget autot ära. Siis tegelen selle optimeerimisega edasi. Tegin algselt mysqlis et paneb automaatsed id- andetele. Aga laadimisel läheb vehicleid 13 le ms id 13 andmed kuigi auto õige samp id on 1. Et vaja see paika saada.
Vaata lisaks!! Minu tehtud õpetused ja funksioonid mida olen teinud ja kokku kogunud!!

SIIT


By Geto244
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)