Toon posts:

[ASP] Traag ivm gebruik classes?

Pagina: 1
Acties:
  • 140 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik ben aantal dingen aan het ontwikkelen in het 'traditionele' MS ASP en nu zijn we dit geheel object georienteerd aan het ontwikkelen. Soms worden er behoorlijk wat classes tegelijkertijd geinstantieerd. Het lijkt erop dat ASP trager wordt door het gebruik van classes als ik dit afzet tegen het gebruik van alleen functions en subs.
De responstijd van de pagina gaat net even omhoog.
Weet iemand of dit op te lossen is?

Verwijderd

Classes zijn iets langzamer ja. Maar als je OOP design een beetje goed is hoeft dat niet merkbaar te zijn.

Hoe ziet het er nu uit, en weet je waar last van heeft? Van welke class of welke methode?

Verwijderd

Topicstarter
Het lijkt er dat vooral het gebruik van classes in ASP trager is. Het OOP design zit goed wellicht dat het 'veel' gebruiken van Array's (wat veel voorkomt bijv. customer.orders = array met order objects) in ASP de boel trager maakt?

Verwijderd

De Arrays zouden het opzich niet trager moeten maken omdat het nu in classes zit. Dit zou je zonder classes namelijk ook nog hebben. Waar je wel naar kunt kijken of je geen dubbelen arrays hebt. Data dubbel ophaalt.

Ik zou gewoon even een analize maken en aan der hand daarvan kijken over welke methode hij het langst doet. Deze methode moet je dan te zien optimalizeren.

Verwijderd

Topicstarter
Kijk ik heb een template systeem ontwikkeld waarmee je je layout middels verschillende classes kan samenstellen. De classes geven een XML output die met een standaard XSL stylesheet gemerged wordt.

Voorbeeld:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Dim objPage 'een pagina
Dim objMenu 'menu van pagina
Dim objForm 'as Form
Dim objFormField 'as formfield

set objPage = New Page
objPage.Title  = "titel van pagina"

set objMenu = New Menu
objMenu.AddLink "LabelVanLink", "http://www.url.nl"
objMenu.AddLink "LabelVanLink2", "http://www.url2.nl"
objMenu.AddLink "LabelVanLink3", "http://www.url3.nl"
'De Links worden in de Menu class opgeslagen in een Array van 'MenuItem' classes.

'we voegen het menu toe aan de pagina.
objPage.AddControl(objMenu)


'we plaatsen een standaard formulier op de pagina
Set objForm = New Form
objForm.Caption = "Toevoegen klant ofzo"
objForm.SubmitLabel = "toevoegen"
objForm.Action = "toevoegen_klant.asp"

'we voegen een veld toe aan het formulier 
set objFormField = New FormField 
objFormField.Label = "Klantnaam"
objFormField.InputType = "text"

'formfield word in een array opgeslagen in de form class..
objForm.AddField(objFormField)

set objFormField = nothing

'nu hebben we het formulier klaar en voegen we dit toe aan de page.
objPage.AddControl(objForm)

'we schrijven de page naar de browser. 
'Hij haal uit iedere class een XMLoutput en merged deze met de standaard stylesheet.

objPage.WriteToScreen()


Ik vermoed dat het probleem in de grote hoeveelheid Arrays zit. Want echt veel database access e.d. komt er niet bij kijken op de meeste pagina's.

Verwijderd

Topicstarter
kick..

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:24

gorgi_19

Kruimeltjes zijn weer op :9

Ik vermoed dat het probleem in de grote hoeveelheid Arrays zit. Want echt veel database access e.d. komt er niet bij kijken op de meeste pagina's.
Dan zet je een paar tellers neer om te kijken wat het duurste is om te maken?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Goed idee, gaan we eens even proberen!

  • party42
  • Registratie: Oktober 2000
  • Laatst online: 27-05 13:28
mocht je dit willen gaan doen, ik heb prettige ervaringen met dit component:
http://www.alphasierrapapa.com/IisDev/Components/Profiler/

Everyday's an endless stream, of cigarettes and magazines...


Verwijderd

Topicstarter
party42 schreef op 01 maart 2004 @ 21:28:
mocht je dit willen gaan doen, ik heb prettige ervaringen met dit component:
http://www.alphasierrapapa.com/IisDev/Components/Profiler/
Wat doet dit component meer dan een Timer?

  • party42
  • Registratie: Oktober 2000
  • Laatst online: 27-05 13:28
Explain Timer...

Ik ken Timer dan denk ik niet, maar het voordeel van dit component is dat het in mili-mili-mili (etc :) ) werkt. Daarnaast, de aanroep is erg makkelijk en geeft betrouwbare resulten.

Everyday's an endless stream, of cigarettes and magazines...


  • Dennis van der Stelt
  • Registratie: Januari 2000
  • Laatst online: 27-05 08:27
Arrays zijn traag, da's simpel. Als je veel het ReDim commando gebruikt kun je beter wat anders verzinnen. ReDim is waardeloos en zo'n beetje het meest trage uit ASP/VB code.

Daarnaast moet je niet te veel een object instantiëren. Dus het volgende:
code:
1
2
Dim objA as MyClass
Set objA = new MyClass()


Haal objA dan liever wat hoger en maak 'm globaal binnen je class. Instantieër 'm in de constructor (de New() method in VB, geloof ik) en gebruik 'm daarna.

Maar nogmaals, maak liever een disconnected recordset aan i.p.v. arrays. Array's zijn evil! })

Doe maar gewoon, dan doe je al gek genoeg.


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
En je hebt ook iets om die theorie te ondersteunen? De RecordSet.getRows methode die een Array teruggeeft wordt vrij algemeen aangeraden boven het gebruik van een rs.

Verwijderd

Topicstarter
party42 schreef op 02 maart 2004 @ 00:18:
Explain Timer...

Ik ken Timer dan denk ik niet, maar het voordeel van dit component is dat het in mili-mili-mili (etc :) ) werkt. Daarnaast, de aanroep is erg makkelijk en geeft betrouwbare resulten.
Timer is in miliseconden. Zit in Vbscript.
Zie: http://www.devguru.com/Te...cript/quickref/timer.html
Pagina: 1