-
14-12-2011, 17:08 #1Approved 9-lifer
- 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
-
-
14-12-2011, 18:39 #2Approved 9liver
- 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 characterno votes
-
14-12-2011, 19:56 #3Member
- 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
-
26-12-2011, 17:32 #4Approved 9liver
- 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 maarno votes
-
26-12-2011, 17:46 #5Deactivated user
- 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
-
27-12-2011, 15:45 #6Approved 9liver
- Registered
- 04/06/11
- Location
- .
- Posts
- 1,585
- iTrader
- 16 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 6/11
no votes
-
27-12-2011, 21:42 #7
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
-
28-12-2011, 10:30 #8Approved 9-lifer
- 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
-
28-12-2011, 19:06 #9
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

