[Laszlo-dev] For Review: Change change.qauDneSy9.txt Summary: Make Profiler work in DHTML

P T Withington ptw at pobox.com
Tue Jun 27 16:50:04 EDT 2006


[Henry, I don't think this breaks anything, so if you would like me  
to check it in for you to play with, let me know.]

Change change.qauDneSy9.txt by ptw at tin-woodsman.local /Users/ptw/ 
pending-changes/ on 2006-06-27 16:10:16 EDT

Summary: Make Profiler work in DHTML

New Features: Profiler

Bugs Fixed:
LPP-2075  Make DHTML compiler work for profile and backtrace
LPP-903 server should dump profile data without requiring external
listener on port 4444 (partial)
LPP-2258 Profiler does not work with lo-res clocks (e.g., SWF on  
Windows)

Technical Reviewer: hminsky (pending)
QA Reviewer: max (pending)
Doc Reviewer: jsundman (pending)

Documentation:

The profiler is now named `Profiler` (rather than LzProfiler, since it
exports some generally useful methods now).

By default, compiling with ?profile=true will create the Profiler,
will execute Profiler.start() immediately, and Profiler.stop() after
the canvas is inited, thus creating a profile of the startup process.

The profiler sends its output to a file with the same name as your app
but the extension .lzx changed to .profiler.  Use
tools/profiler/profile.pl to process that file to a gprof-compatible
output.

Public profiler methods:

Profiler.start(): starts the profiler, clearing any previous profiler
run and overwiting any existing .profiler file.

Profiler.stop(): stops the profiler, ensuring profiler output is
logged and closing the .profiler file.

Profiler.pause(): temporarily suspends profiling.

Profiler.resume(): resumes profiling.

Details:
     LzProfile.as -> .lzs:  Rewritten as a singleton, adding new manual
     interface, XMLHttpRequest back-end.

     LzInstantiator, LzNode, LaszloEvents: $lzprofiler -> Profiler

     LzIdle: Don't profile LzIdle.update. Optimize to only send onidle
     if clients.

     LaszloCanvas.*:  Profiler.stop() when you are done.

     LaszloLibrary:  Profiler.start() ASAP

     buildlfcprofiledebug:  New, for debugging profiler

     lzsc, Compiler: Set $as2 for swf9 (since it is $as2 compatible)

     JavascriptGenerator, CodeGenerator:  Fix longstanding bug in logic
     for lo-res clocks to actually work.

     ResponderPROFILE:  New.  Allows the LFC profiler to record
     profiler data into a file on the server

     ResponderLFC:  Learn how to deliver the profile or profile-debug
     versions.

Tests:

     IWFM in DHTML.  N.B., The swf profiler still talks to a dedicated
     listener on port 4444, not to the PROFILE responder -- I'll fix
     that when I figure out how to do the equivalent of an
     XMLHttpRequest in SWF.

Files:
D      WEB-INF/lps/lfc/profiler/LzProfile.as
A  +   WEB-INF/lps/lfc/profiler/LzProfile.lzs
M      WEB-INF/lps/lfc/services/LzInstantiator.as
M      WEB-INF/lps/lfc/services/LzIdle.js
M      WEB-INF/lps/lfc/core/LzNode.lzs
M      WEB-INF/lps/lfc/views/LaszloCanvas.as
M      WEB-INF/lps/lfc/views/LaszloCanvas.js
M      WEB-INF/lps/lfc/LaszloLibrary.lzs
M      WEB-INF/lps/lfc/events/LaszloEvents.lzs
A      WEB-INF/lps/lfc/buildlfcprofiledebug
M      WEB-INF/lps/server/sc/lzsc.py
M      WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java
M      WEB-INF/lps/server/src/org/openlaszlo/sc/CodeGenerator.java
A      WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ 
ResponderPROFILE.java
M      WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ 
ResponderLFC.java
M      WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java


-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.ptw.45oW.tgz
Type: application/octet-stream
Size: 11042 bytes
Desc: not available
Url : http://www.openlaszlo.org/pipermail/laszlo-dev/attachments/20060627/3c924c53/patch.ptw.45oW.obj
-------------- next part --------------




More information about the Laszlo-dev mailing list