![]() |
Massive speed difference between identical asp pages
I have a page that produces little thumbnails of the 3D models it
finds in a specified directory (and iterates down through any sub directories). It basically scans each directory for 3D Studio Max files using the filesystemobject and writes an activeX component called iDrop for each file so it can be displayed on the page (and drag-dropped straight into Max). If it happens to find a similarly named XML file in the directory, it loads that and transforms the content with a pre-loaded XSL stylesheet to provide a summary of the model's size/face count/etc. This is just for context though, just in case it is relevant. In response to complaints that it was running really slowly (from 6 to 13 seconds to scan a directory with 3 models in it), I made a copy of the page to add debug timers to, so I could see where it was taking all the time. This copy completes in between 0.3 and 0.6 seconds for the same directory. The code is identical. I can cut and paste the code from the slow file to the fast one (or vice versa) and it makes no difference to the execution speed of either file. They both execute using the IUSR_foo account on the webserver. They are both in the same directory. The directory they are reading from has read permission for "Everyone". What gives? How is this possible? What is IIS doing differently for the two pages? Surely IIS should recompile a page if its modified date changes, so how can it compile two different execution schemes for the same code? The fix for me is to use the new page and not the old one, but I really want to know what is going on here. Server is IIS5.0 on Windows 2000 Server |
Re: Massive speed difference between identical asp pages
Have you found where exactly the time difference is ?
For now it looks like to me that you see fast running server side code under all circumstances. If yes , the delay experienced by users is IMO the time taken to download all the 3D models so that they can be viewed by the (multiple) ActiveX control(s) hosted in your HTML page... If yes, you could try to donwload only those models the user actually wants to use... Patrice -- "MikeT" <news@chthonic.f9.co.uk> a écrit dans le message de news:af4a582c.0411170444.4a976aa0@posting.google.c om... > I have a page that produces little thumbnails of the 3D models it > finds in a specified directory (and iterates down through any sub > directories). > > It basically scans each directory for 3D Studio Max files using the > filesystemobject and writes an activeX component called iDrop for each > file so it can be displayed on the page (and drag-dropped straight > into Max). If it happens to find a similarly named XML file in the > directory, it loads that and transforms the content with a pre-loaded > XSL stylesheet to provide a summary of the model's size/face > count/etc. This is just for context though, just in case it is > relevant. > > In response to complaints that it was running really slowly (from 6 to > 13 seconds to scan a directory with 3 models in it), I made a copy of > the page to add debug timers to, so I could see where it was taking > all the time. > > This copy completes in between 0.3 and 0.6 seconds for the same > directory. > > The code is identical. I can cut and paste the code from the slow file > to the fast one (or vice versa) and it makes no difference to the > execution speed of either file. They both execute using the IUSR_foo > account on the webserver. They are both in the same directory. The > directory they are reading from has read permission for "Everyone". > > What gives? How is this possible? What is IIS doing differently for > the two pages? Surely IIS should recompile a page if its modified date > changes, so how can it compile two different execution schemes for the > same code? > > The fix for me is to use the new page and not the old one, but I > really want to know what is going on here. > > Server is IIS5.0 on Windows 2000 Server |
Re: Massive speed difference between identical asp pages
Rename the "slow" file, then make a copy of the "fast" file with the "slow"
file name. Is it still slow? Are you calling both files exactly the same way (by a link, form post, etc)? If you are calling by a link or form post swap the links and see if the performance problem follows the link. -- --Mark Schupp Head of Development Integrity eLearning www.ielearning.com "MikeT" <news@chthonic.f9.co.uk> wrote in message news:af4a582c.0411170444.4a976aa0@posting.google.c om... >I have a page that produces little thumbnails of the 3D models it > finds in a specified directory (and iterates down through any sub > directories). > > It basically scans each directory for 3D Studio Max files using the > filesystemobject and writes an activeX component called iDrop for each > file so it can be displayed on the page (and drag-dropped straight > into Max). If it happens to find a similarly named XML file in the > directory, it loads that and transforms the content with a pre-loaded > XSL stylesheet to provide a summary of the model's size/face > count/etc. This is just for context though, just in case it is > relevant. > > In response to complaints that it was running really slowly (from 6 to > 13 seconds to scan a directory with 3 models in it), I made a copy of > the page to add debug timers to, so I could see where it was taking > all the time. > > This copy completes in between 0.3 and 0.6 seconds for the same > directory. > > The code is identical. I can cut and paste the code from the slow file > to the fast one (or vice versa) and it makes no difference to the > execution speed of either file. They both execute using the IUSR_foo > account on the webserver. They are both in the same directory. The > directory they are reading from has read permission for "Everyone". > > What gives? How is this possible? What is IIS doing differently for > the two pages? Surely IIS should recompile a page if its modified date > changes, so how can it compile two different execution schemes for the > same code? > > The fix for me is to use the new page and not the old one, but I > really want to know what is going on here. > > Server is IIS5.0 on Windows 2000 Server |
Re: Massive speed difference between identical asp pages
"Mark Schupp" <notvalid@email.net> wrote in message news:<umA81AMzEHA.2752@TK2MSFTNGP11.phx.gbl>...
> > "MikeT" <news@chthonic.f9.co.uk> wrote in message > news:af4a582c.0411170444.4a976aa0@posting.google.c om... > >I have a page that produces little thumbnails of the 3D models it > > finds in a specified directory (and iterates down through any sub > > directories). > > > > It basically scans each directory for 3D Studio Max files using the > > filesystemobject and writes an activeX component called iDrop for each > > file so it can be displayed on the page (and drag-dropped straight > > into Max). If it happens to find a similarly named XML file in the > > directory, it loads that and transforms the content with a pre-loaded > > XSL stylesheet to provide a summary of the model's size/face > > count/etc. This is just for context though, just in case it is > > relevant. > > > > Rename the "slow" file, then make a copy of the "fast" file with the "slow" > file name. Is it still slow? > The file with the "slow" name becomes slow. The one that was slow becomes fast :) This kinda proves that it's something IIS is doing when executing the code. The same thing happens with a second page in the same directory that is used as a detailed view for a particular model. Again, making a new file with a new name speeds up the code, but the slowdown is associated with the filename and not the code itself. > Are you calling both files exactly the same way (by a link, form post, etc)? > If you are calling by a link or form post swap the links and see if the > performance problem follows the link. > I'm typing in a direct URL to the page with the same parameter (a directory path to scan) for each. Patrice wrote: > Have you found where exactly the time difference is ? > Inserting more timing checks makes it clear that one page is taking around 2 seconds to run through the files in a directory, the other <0.2 seconds. Specifically, it's taking a long time to get a file's name. The code makes repeated use of objFile.Name. Caching this name in a string (which I should have been doing anyway, doh) speeds up BOTH pages immensely, but the slow down factor for the files is still around 16 to 1. So it's the FileSystemObject that's got the problem. Why would getting a file name be so slow? > > > For now it looks like to me that you see fast running server side code > under all circumstances. > Nope - the timings are being done on the server side, the activeX loads the models clientside, so won't slow down the execution of the ASP. > If yes, you could try to donwload only those models the user actually > wants to use... Point taken, but this is a model library browser - they don't know what model they are looking for, they are browsing, say, 100 office chairs looking for the right one for the scheme they are modelling. Hmm. It looks like IIS has cached something to do with the page's name that isn't getting reset when the page is edited. I'll try restarting the IIS server, but if that fails I'm assuming the IIS metabase has got corrupted for the files that were in that directory, but it's beyond me what it might have cached that affects behaviour in this way. Here's the code for the loop that is being so slow: (splittime is my debug code that logs the elapsed time in milliseconds for each call, and writeGalleryModel just outputs the HTML based on the available files, fso is a global fileSystemObject) sub listmodelsunder(libraryroot, librarywebroot, subpath, preview) dim thisFolder, subFolder, file dim bestproxyfile dim proxyfile dim xmlfile dim maxfile dim vrmlfile dim filename set thisfolder = fso.GetFolder(libraryroot & subpath) proxyfile = "" xmlfile = "" maxfile = "" vrmlfile = "" splittime(libraryroot & subpath) for each file in thisFolder.Files filename = file.Name 'THIS IS THE CALL THAT TAKES 16 TIMES LONGER ON ONE PAGE splittime(filename & " start") select case fileextension(filename) case "jpg" if proxyfile = "" then proxyfile = filename if instr(1,filename,"best",1) > 0 then bestproxyfile =filename if instr(1,filename,preview,1) > 0 then proxyfile = filename case "max" if maxfile = "" then maxfile = filename else if filename = thisFolder.Name & ".max" then maxfile = filename end if end if case "xml" if instr(1,filename,"fileproperties",1) > 0 then xmlfile = filename case "wrl" if vrmlfile = "" and preview = "3d" then vrmlfile = filename end select splittime(filename & " end") next splittime("scan complete") if proxyfile = "" or preview = "3d" then proxyfile = bestproxyfile if maxfile<>"" then 'this directory is a model, list it writeGalleryModel library & subpath, librarywebroot & subpath, proxyfile, maxfile, xmlfile, vrmlfile modelcount = modelcount + 1 else for each subFolder in thisFolder.subFolders listmodelsunder libraryroot, librarywebroot, subpath & "/" & subFolder.Name, preview next end if set thisfolder = nothing end sub |
Re: Massive speed difference between identical asp pages
> the two pages? Surely IIS should recompile a page if its modified date
> changes, Should != does. Did you restart IIS? |
Re: Massive speed difference between identical asp pages
On Thu, 18 Nov 2004 09:42:49 -0500, "Aaron [SQL Server MVP]"
<ten.xoc@dnartreb.noraa> wrote: >> the two pages? Surely IIS should recompile a page if its modified date >> changes, > >Should != does. Did you restart IIS? > I tried this at lunchtime - no difference to the pages at all: anything using the original name is slow when using the filesystemobject, the same code under a new name runs at normal speed. This is getting silly. Mike |
Re: Massive speed difference between identical asp pages
See the last section of http://www.aspfaq.com/2022 ... you may be able to
resolve this by dropping the application and re-creating it. -- http://www.aspfaq.com/ (Reverse address to reply.) "MikeT" <news@chthonic.f9.co.uk> wrote in message news:0ahpp0lr6d46a0it16on2qul5b4kvo329e@4ax.com... > On Thu, 18 Nov 2004 09:42:49 -0500, "Aaron [SQL Server MVP]" > <ten.xoc@dnartreb.noraa> wrote: > > >> the two pages? Surely IIS should recompile a page if its modified date > >> changes, > > > >Should != does. Did you restart IIS? > > > > I tried this at lunchtime - no difference to the pages at all: > anything using the original name is slow when using the > filesystemobject, the same code under a new name runs at normal > speed. This is getting silly. > > Mike |
Re: Massive speed difference between identical asp pages
MikeT wrote:
> On Thu, 18 Nov 2004 09:42:49 -0500, "Aaron [SQL Server MVP]" > <ten.xoc@dnartreb.noraa> wrote: > >>> the two pages? Surely IIS should recompile a page if its modified >>> date changes, >> >> Should != does. Did you restart IIS? >> > > I tried this at lunchtime - no difference to the pages at all: > anything using the original name is slow when using the > filesystemobject, the same code under a new name runs at normal > speed. This is getting silly. > > Mike What are the filenames? (grasping at straws) -- Microsoft MVP -- ASP/ASP.NET Please reply to the newsgroup. The email account listed in my From header is my spam trap, so I don't check it very often. You will get a quicker response by posting to the newsgroup. |
Re: Massive speed difference between identical asp pages
See Aaron's response. If that doesn't help:
Is the slow page slow when called a second time with the same parameters? Does it make a difference which page is called first? restart web-server (re-boot if possible) 1. call slow page 2. call fast page restart web-server again 3. call fast page 4. call slow page -- Mark Schupp Head of Development Integrity eLearning www.ielearning.com "MikeT" <news@chthonic.f9.co.uk> wrote in message news:0ahpp0lr6d46a0it16on2qul5b4kvo329e@4ax.com... > On Thu, 18 Nov 2004 09:42:49 -0500, "Aaron [SQL Server MVP]" > <ten.xoc@dnartreb.noraa> wrote: > > >> the two pages? Surely IIS should recompile a page if its modified date > >> changes, > > > >Should != does. Did you restart IIS? > > > > I tried this at lunchtime - no difference to the pages at all: > anything using the original name is slow when using the > filesystemobject, the same code under a new name runs at normal > speed. This is getting silly. > > Mike |
Re: Massive speed difference between identical asp pages
On Thu, 18 Nov 2004 11:19:25 -0500, "Bob Barrows [MVP]"
<reb01501@NOyahoo.SPAMcom> wrote: >MikeT wrote: >> On Thu, 18 Nov 2004 09:42:49 -0500, "Aaron [SQL Server MVP]" >> <ten.xoc@dnartreb.noraa> wrote: >> >>>> the two pages? Surely IIS should recompile a page if its modified >>>> date changes, >>> >>> Should != does. Did you restart IIS? >>> >> >> I tried this at lunchtime - no difference to the pages at all: >> anything using the original name is slow when using the >> filesystemobject, the same code under a new name runs at normal >> speed. This is getting silly. >> >> Mike >What are the filenames? (grasping at straws) The slow ones are called gallery.asp and model.asp - both sub frames of a simple two frame default.asp. I copied the files and named them gallery2.asp and model2.asp and then linked those names instead in the default.asp page to end up with a normal running app. So - I've 'fixed' the problem but still no closer to tracking this down. Off to try Aaron's suggestion from the FAQ. Mike |
| All times are GMT. The time now is 08:00 PM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.