Hej! Om jag skulle veta att jag behöver använda alla klasser och dess information, så skulle jag fyllt upp alla objekt. Skulle jag bara använda viss data och inte all, så skulle jag vid användning hämta data (Alltså tex vid anrop av en klass property som ska returnera en ny klass med data, då först gör jag mitt anrop som fyller klassen, och sedan cachar den, ett förslag vid cachning är att använda WeakReference). Hej tycker du ska ta en till på www.llblgen.com Har inte använt llblgen på ett tag men är ganska säker på att de inte cachar objekten, lazy load använder de nog men har för mig att frans är rätt så negativ till att använda caches. Ett förslag: Ladda inte mer än nödvändigt.Prestanda / Struktur
När man jobbar med ett stort projekt där man har flera klasser som länkas in i varandra. Exempelvis man har en klass som är transport. I transport har man sedan
transport.salesman(x).name
transport.salesman(x).country.name
transport.vehicleType.truck.driver.name
transport.vehicleType.truck.regnr.value
transport.vehicleType.truck.space.value
transport.deliverdate
Det finns alltså massor av kopplingar fram och tillbaka. Klassen country används på massa andra ställen men i detta fallet laddas den även när man laddar in transport eftersom man kan vilja komma åt den datan.
Strukturen här blir ju optimal men prestandan blir lidande.
Jag skulle vilja ha en diskussion om hur ni löser såna här fall?Sv: Prestanda / Struktur
Du har även möjligheter att skapa en Identity map, som du kan använda för att cacha data. Jag skulle rekommendera dig att läsa boken: Patterns Of Enterprise Application Architecture - Martin Fowler. http://www.martinfowler.com/books.html#EEA.Sv: Prestanda / Struktur
Kan verkligen rekommendera fowlers bok massvis med intressanta tips å lösningar.
Lite mer info om boken och identitymap finns här, http://www.martinfowler.com/eaaCatalog/identityMap.htmlSv: Prestanda / Struktur
deras entitygenerator gör precis det du vill och den laddar data ondemand
kör själv med den på mina egna grejjor och den funkar kanon.
//RogerSv: Prestanda / Struktur
Sv: Prestanda / Struktur
Instansiera i första hand bara transport classen.
När man anropar salesman på den så laddar du den och cach'ar den.
Sammasak med country under en salesman.
Osv...
Du kommer kunna ladda strukturen betydligt snabbare. Första accessen till underliggande objekt kommer bli lite lidande. Men det tjänar du in. När databasen växer kommer det inte påverka prestandan nämnvärt om du laddar minimalt med data.
Jämför ett recordset, som bara har en post tillgänglig, med ett dataset, vilket laddar alla information och ger en avancerad classstruktur.
Vilken är snabbast och effektivast att arbeta med?