> That was my initial suspicion. I suggest you check that and then get
> back to us if it doesn't yield any results.
>
So when running the server on my local dev machine and accessing the
pages via localhost I'm not hitting the timeout when opening
directories (it does take a VERY long time however). I did some
profiling with slime and came up with the following:
64.499 | 5,112,120,256 | 2,559 | 0.025205 | WEBLOCKS:ASDF-
SYSTEM-DIRECTORY
4.392 | 12,602,960 | 852 | 0.005155 | WEBLOCKS:RENDER-
LINK
2.398 | 4,551,392 | 853 | 0.002812 | WEBLOCKS:WITH-
WIDGET-HEADER
0.436 | 40,036,800 | 2,559 | 0.000170 | WEBLOCKS:MAKE-LOCAL-
DEPENDENCY
0.211 | 10,698,848 | 2,559 | 0.000082 | WEBLOCKS:COMPUTE-
WEBAPP-PUBLIC-FILES-PATH
0.178 | 3,531,280 | 853 | 0.000209 | WEBLOCKS:RENDER-
WIDGET-BODY
0.110 | 16,581,440 | 852 | 0.000129 | WEBLOCKS::GENERATE-
ACTION-CODE
0.077 | 2,733,568 | 2,559 | 0.000030 | WEBLOCKS:COMPUTE-
PUBLIC-FILES-PATH
0.058 | 858,640 | 6,095 | 0.000009 | WEBLOCKS::CL-ESCAPE-
STRING
0.055 | 917,504 | 8,532 | 0.000006 |
WEBLOCKS:ATTRIBUTIZE-NAME
0.049 | 528,400 | 855 | 0.000057 | WEBLOCKS:DOM-ID
0.039 | 4,035,344 | 852 | 0.000046 | WEBLOCKS:MAKE-
ACTION-URL
0.039 | 24,240 | 857 | 0.000046 | WEBLOCKS:WEBAPP-
UPDATE-THREAD-STATUS
0.030 | 374,336 | 852 | 0.000035 | WEBLOCKS:REQUEST-
URI-PATH
0.029 | 6,406,272 | 2,559 | 0.000011 | WEBLOCKS:PUBLIC-
FILE-RELATIVE-PATH
0.020 | 0 | 853 | 0.000023 | WEBLOCKS:WIDGET-
PREFIX-FN
0.016 | 3,596,400 | 853 | 0.000019 | WEBLOCKS:DOM-
CLASSES
0.010 | 0 | 857 | 0.000011 | WEBLOCKS:UPDATE-
THREAD-STATUS
0.009 | 0 | 1,708 | 0.000005 | WEBLOCKS::ENSURE-
DOM-ID
0.000 | 0 | 852 | 0.000000 | AW::NAME
There's more functions, but what's most pertinent is:
a) ASDF-SYSTEM-DIRECTORY being called 2.5k times and taking 64.5
seconds (seemingly corresponding with the calls to COMPUTE-WEBAPP-
PUBLIC-FILES-PATH)
b) make-photos-widget never being called (allegedly)
make-photos-widget is the only function that calls compute-public-
files-path:
(defun make-photos-widget ()
(let ((photo-viewer (make-instance 'photo-viewer-widget)))
(make-instance
'photos
:photo-viewer photo-viewer
:photo-explorer (create-photo-explorer-widget #p"images/
photos/" (compute-public-files-path 'aw) photo-viewer))))
and it also HAS to be called (I think) given that that is the function
that creates the photos page we're rendering:
(defun make-main-page ()
(make-navigation "Main Menu"
(list "Photos" (make-photos-widget) "photos")
(list "Main" (make-main-widget) "main")
(list "Nav-test" (make-nav-test) "nav-test")))
So I'm a bit stumped, but I figured I'd at least update everyone with
my findings. I'm going to keep on digging/hacking to see what I can
figure out.
I do have a question regarding widget "dirtiness" and circular
references. So my dir-tree and file widgets all have a photo-explorer
widget as a class member so that the on-select methods (when
specialized on dir-tree and file) may easily access the photo-explorer
widget to set pertinent items. Does this circular referencing make
cause things to be labeled as dirty and to be re-rendered over and
over?
--
You received this message because you are subscribed to the Google Groups
"weblocks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/weblocks?hl=en.