1. #1
    Bram's Avatar
    Registered
    01/08/02
    Location
    Gent
    Posts
    9,675
    iTrader
    3 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/361

    Snelheidsinvloed van lengte index namen in JSON object

    Hey iedereen

    Situatie: Ik heb een pagina waarmee een school oudercontacten kan regelen: ze zien voor een leerkracht alle leerlingen die op oudercontact willen komen en per leerling alle momenten beschikbaar voor dat oudercontact (met kleurcodes wordt aangeduid welke momenten nog beschikbaar zijn, welke reeds vastgelegd).

    Elk moment voor elke leerling is aanklikbaar, via ajax wordt de keuze bewaard en wordt er een json array teruggegeven met wie waar is aangevinkt (vaak werkt men met meerdere mensen tegelijk, ik moet dus steeds ALLE data terugkrijgen om de volledige pagina te updaten). Nu, voor grote scholen loopt dit aantal aanklikbare momenten al vlug op tot een paar 100 links op de pagina (20 leerlingen voor een leerkracht en gemakkelijk 30 momenten). Dat is dus ook heel veel data die ik terugkrijg via ajax om te verwerken. En dat voel je in de performance: eenmaal de link is aangeklikt, "hapert" de pagina toch wel vlug een seconde.

    Nu werken we met nogal lange veldnamen in onze databases (keuze van onze leaddev), dingen als "OuderContactPeriodeDetailID" zijn regelmaat en die veldnamen staan dus ook in de json die terugkeert.

    Nu vroeg ik me af: moest ik die veldnamen afkorten in de json, zou dat invloed hebben op de snelheid?
    If I had a nickel for every time someone told me that my idea for melting down coins to make a giant robotic parrot was a bad idea, I would have one kicka$$ giant robotic parrot.
    no votes  

  2. #2
    Cycloon's Avatar
    Registered
    18/01/04
    Location
    Melle
    Posts
    10,535
    iTrader
    56 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/102
    Korte datavelden gebruiken zou enkel een invloed hebben wanneer bandbreedte een probleem is.
    “In terms of how we evaluate schooling, everything is about working by yourself. If you work with someone else, it’s called cheating. Once you get out in the real world, everything you do involves working with other people.”
    PSN: Cycloon - Final Fantasy XIV: A realm reborn character
    no votes  

  3. #3

    Registered
    13/02/08
    Posts
    111
    iTrader
    0
    Mentioned
    0 Post(s)
    Bij performantieproblemen is 1 gouden regel: meten is weten. Wat loopt er fout?
    Je kan best eens kijken hoe lang alles duurt:
    - Het ophalen van de data op de server (trage query?)
    - Het ontvangen de de data (te grote dataset?)
    - Het parsen van de data en updaten van je pagina (inefficiënte JS?)

    Voor deze eenvoudige case kan je gewoon enkele timestamps nemen op de verschillende momenten (vb. eentje wanneer je je request doet (op de knop klikt), eentje wanneer je je data binnenkrijgt en eentje wanneer de verwerking klaar is). Pas als je weet waar de meeste tijd in kruipt, zal je weten hoe je het best kan aanpakken.

    (Cycloon geeft trouwens al een correct opmerking. Als dat het probleem is kan je je data eventueel ook gaan comprimeren, met bijvoorbeeld deflate, maar als de dataset te klein is, is de kans groot dat het uiteindelijk toch trager is door de overhead van het (de)comprimeren en zal je dus enkel verlies boeken. Experimenteren en meten is de boodschap!)
    no votes  

  4. #4
    SideShow's Avatar
    Registered
    21/08/02
    Location
    Roeselare
    Posts
    4,474
    iTrader
    15 (100%)
    Mentioned
    0 Post(s)
    Reputation
    1/35
    ligt nogal dikwijls aan niet-efficiente clientside code ... vooral omdat je zegt dat je browser hangt.

    hier alvast een interessant artikel mbt jquery optimalisatie
    24 ways: Your jQuery: Now With 67% Less Suck

    edit: hoe lang het duurt eer je je json terugkrijgt van de server: in chrome duw je op f12, klik op Network, klik op xhr.. testen maar
    no votes  

  5. #5

    Registered
    14/08/10
    Location
    Diest
    Posts
    2,419
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    8/16
    Offtopic: mag ik weten welk systeem je dan verzorgt? Blackboard?
    no votes  

  6. #6
    GigaPixels's Avatar
    Registered
    04/06/11
    Location
    .
    Posts
    1,585
    iTrader
    16 (100%)
    Mentioned
    0 Post(s)
    Reputation
    6/11
    Quote Originally Posted by BramVroy View Post
    This quote is hidden because you are ignoring this member. Show
    Blackboard?
    Veel keuze is er daarin niet
    9lives' hack fiasco: 1 | 2 | 3
    no votes  

  7. #7
    Disa's Avatar
    Registered
    28/04/04
    Location
    Gent
    Posts
    1,317
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    6/6
    Quote Originally Posted by GigaPixels View Post
    This quote is hidden because you are ignoring this member. Show
    Veel keuze is er daarin niet
    Off the top of my head:
    • Blackboard
    • Moodle
    • Sakai
    • Claroline
    • Chamilo
    • Learn eXact


    Er zullen er wel nog meerdere zijn..

    Ontopic:
    Veel gaat korteren JSON keynames mijns inszien niet veel uitmaken. Opstellen van uurroosters is NP hard, dus het kan zijn dat je hier een algoritme hebt dat niet efficient op te lossen valt. Hoewel het lijkt dat dat niet helemaal is wat je hier probeert te doen?
    no votes  

  8. #8
    Bram's Avatar
    Registered
    01/08/02
    Location
    Gent
    Posts
    9,675
    iTrader
    3 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/361
    't Is geen van de spelers die actief zijn binnen het hoger onderwijs, we werken uitsluitend samen met kleuter, lager en secundair onderwijs.

    't Is inderdaad ook geen algoritme dat de planning zelf opstelt, deze wordt door de scholen zelf gedaan.
    If I had a nickel for every time someone told me that my idea for melting down coins to make a giant robotic parrot was a bad idea, I would have one kicka$$ giant robotic parrot.
    no votes  

  9. #9
    Fr3aK's Avatar
    Registered
    17/07/02
    Location
    Antwerpen
    Posts
    2,614
    iTrader
    0
    Mentioned
    0 Post(s)
    Ik neem aan dat je voor schoolonline.be werkt?

    Anyway, als je toch elke keer een volledig dataset moet ophalen kan je best gewoon een loader weergeven, die 1-2s zijn nog aanvaardbaar.

    M'n ex-werkgever heeft een projectmanagement-systeem in ASP.NET, sommige van die onderdelen duren 15s en meer om te laden. Belachelijk lang maar klanten kunnen er blijkbaar mee leven, ik alvast niet
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in