[ASP] Welke methode is beter?

Pagina: 1
Acties:

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 18:53
Ik moet binnen ASP een groot aantal berekeningen meerdere keren kunnen uitvoeren. Daarvoor wil ik gebruik maken van een van onderstaande methodes:

- Een functie in een apart asp-bestand die een array van 15 waardes teruggeeft. Voorbeeld:
code:
1
2
3
4
5
6
7
8
9
10
11
'function.asp
FUNCTION getWaardes (input)
   dim array1(15)
   getWaardes = array1
END FUNCTION


'header.asp
<!--#include file="function.asp"-->
dim array
array = getWaardes(input)

- De berekeningen worden in een aparte module uitgevoerd en daarna wordt met request.querystrings automatisch een redirect gedaan naar het doelbestand. Klein voorbeeld:
code:
1
2
3
4
5
6
7
8
'function.asp
linkedfile = header.asp?Waarde1=" & resultaat1
linkedfile = linkedfile & "&Waarde2=" & resultaat2
response.redirect linkedfile

'header.asp
resultaat1 = Request.queryString("Waarde1")
resultaat2 = Request.QueryString("Waarde2")

Zelf vind ik methode 1 een veel mooiere mehode, maar blijkt uit ervaring wel een stuk trager als methode 2 te zijn. Of is er een manier om methode1 of methode2 nog te versnellen.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:02

gorgi_19

Kruimeltjes zijn weer op :9

edit:

Heel veel onzin op de vroege ochtend

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 18:53
Op donderdag 18 juli 2002 09:53 schreef gorgi_19 het volgende:
Ik kies voor optie 3.. ;)
De functie(bestand) door middel van een include bestand inladen en dan de functie uitvoeren.
Uhmm, kun je misschien een klein voorbeeldje geven. Zo goed ben ik nog niet bekend met ASP. :)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Zijn 1 en 2 equivalent :?

Waarom zou het berekenen in een asp file en de rest ook daarin trager zijn dan apart uitrekenen :?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:02

gorgi_19

Kruimeltjes zijn weer op :9

edit:

Heel veel onzin op de vroege ochtend

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 18:53
Op donderdag 18 juli 2002 09:55 schreef ACM het volgende:
Zijn 1 en 2 equivalent :?

Waarom zou het berekenen in een asp file en de rest ook daarin trager zijn dan apart uitrekenen :?
In beide methodes worden dezelfde berekening uitgevoerd. Het verschil tussen beide methodes is het gebruik van geheugen ed.

In methode 1 wordt in de function een array ter grootte 15 in zowel de functie als de header gedefinieerd. Voor zover ik weet kun je een array niet vrijgeven.

In methode 2 wordt in function.asp 15 losse variabelen gedefinieerd en eventueel ook in header.asp.

Ik heb beide methoden inmiddels getest en het valt op dat methode 1 een stuk trager (echt +/- 5 seconden) de resultaten teruggeeft naar de gebruiker. De vraag is dus eigenlijk waardoor dit te verklaren is.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Een functie die wat array waarden teruggeeft duurt 5seconden ??
Wow.
Dat is wel heel erg lang, weet IIS wel in welke file die functie staat?
Of moet ie daarvoor eerst alle asp bestanden parsen in die weblokatie?

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 18:53
Op donderdag 18 juli 2002 09:59 schreef gorgi_19 het volgende:

[..]

:? Maar goed.

functions.asp
code:
1
2
3
<%
de functies
%>

hoofdbestand.asp
code:
1
2
<!-- #include file "functions.asp" -->
uitvoeren van de funtie

Duidelijk genoeg?
Dat gebeurt nu toch in methode 1. Om in header.asp de functie uit function.asp te kunnen aanroepen, moet ik toch eerst function.asp includen. :? :?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:02

gorgi_19

Kruimeltjes zijn weer op :9

Op donderdag 18 juli 2002 10:03 schreef TweakersOnly het volgende:

[..]

Dat gebeurt nu toch in methode 1. Om in header.asp de functie uit function.asp te kunnen aanroepen, moet ik toch eerst function.asp includen. :? :?
|:( Tijd voor koffie, hele sterke koffie... |:(

Maar goed, zitten er nog meer functies in dat bestand?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 18:53
Op donderdag 18 juli 2002 10:05 schreef gorgi_19 het volgende:

[..]

|:( Tijd voor koffie, hele sterke koffie... |:(

Maar goed, zitten er nog meer functies in dat bestand?
In function.asp staat 1 functie, waarbij er wel 4 andere functies worden included. Deze kleine functies geven echter steeds maar 1 variabele terug, geen array oid. In zowel de hoofdfunctie als de 4 kleine functies vinden 1 of meerdere operaties op de database plaats.

Alle datasets zijn na gebruik gesloten en in het geheugen vrijgegeven.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op donderdag 18 juli 2002 10:14 schreef TweakersOnly het volgende:
In function.asp staat 1 functie, waarbij er wel 4 andere functies worden included. Deze kleine functies geven echter steeds maar 1 variabele terug, geen array oid. In zowel de hoofdfunctie als de 4 kleine functies vinden 1 of meerdere operaties op de database plaats.

Alle datasets zijn na gebruik gesloten en in het geheugen vrijgegeven.
Ah het wordt al een stuk complexer.
Worden die functies steeds opnieuw geinclude of eenmalig?
Worden dezelfde databasebewerkingen gedaan of splits je ze dan ineens wel op en als je het gewoon op rij doet niet?

Het is in principe het netste om je array te vullen met functies, maar ik gok dat jouw vertraging niet zozeer aan het array ligt, maar aan de herhaalde aanroepen en waarsch een hoop extra queries die je doet.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 09:31

Crazy D

I think we should take a look.

Op donderdag 18 juli 2002 09:51 schreef TweakersOnly het volgende:
[code]'function.asp
FUNCTION getWaardes (input)
dim array1(15)
getWaardes = array1
END FUNCTION
Geen hoofdletters gebruiken, scheelt ook iets in snelheid :+

Ik denk dat je eens moet gaan timen waar de vertraging inzit, en moet kijken hoe ingewikkeld de queries zijn, gebruikte indices, etc etc. Op zich hoeft een array met een paar waardes natuurlijk niet zo lang te duren, maar als je een aantal keer achter elkaar een connectie maakt, recordset aanmaakt, query uitvoert, resultaat uitleest, recordset en connectie opruimt, gaat daar wel wat overhead inzitten.
Ga timen wat er nou zo lang duurt, dan weet je iig wat beter waar je het moet zoeken.

Exact expert nodig?

Pagina: 1