| Allegro CL version 10.1 New since the initial 10.1 release. |
Arguments: name
Returns the current profile after saving it with the
name name. The profile can be saved (and
thus named) while running (you are asked if you want the profile
stopped and if you answer y
it is stopped). If the
profile is already stopped, it is saved. It is not necessary to
analyze the profile (with, say, show-call-graph or show-flat-profile) before saving a
stopped profile.
cl-user(3): (prof:start-profiler) :sampling cl-user(4): (dotimes (i 10000) (* i i)) nil ;; Trying to save a profile while a profile has been started ;; and not stopped will cause the user to be asked what should ;; be done: ;; cl-user(5): (prof:save-named-profile 'foo) The previous time profile is still in progress. Do you want to stop it? [y or n] n ;; ;; 'n' means do not abort the running profile ;; The time profiler is currently running. Thus, a new profile was not initiated. Warning: The current profile has not been saved. nil ;; This time we do abort the running profile: ;; cl-user(6): (prof:save-named-profile 'foo) The previous time profile is still in progress. Do you want to stop it? [y or n] y #<time profile foo> cl-user(7): (prof:find-named-profile 'foo) #<time profile foo> t ;; Once a profile is stopped and saved, there is no :current profile: ;; cl-user(8): (prof:find-named-profile :current) nil cl-user(9): (prof:start-profiler) :sampling cl-user(10): (dotimes (i 10000) (* i i)) nil cl-user(11): (prof:stop-profiler) :saved ;; ;; The just stopped profile is the :current profile. ;; cl-user(12): (prof:find-named-profile :current) #<time profile current> ;; We can save it with a name ('bar' in this case): ;; cl-user(13): (prof:save-named-profile 'bar) #<time profile bar> ;; Here is its status. In this simple example intended to show ;; functions being used, not real profile information was collected. ;; cl-user(14): (prof:profiler-status :profile (prof:find-named-profile 'bar)) Named profile bar: The time profiler is stopped and 1 samples were collected. Use profiler:show-flat-profile, profiler:show-call-graph, profiler:disassemble-profile or, if you are running the IDE, select the menu item Run/Runtime Analyzer Results Dialog to see the results. cl-user(15): (prof:show-flat-profile) Sampling stopped after 1 samples taken for the time profiler. Sample represents .0 seconds of user+system CPU time. Times below 1.0% will be suppressed. % % self total self total Function Time Cum. secs secs calls ms/call ms/call name 100.0 100.0 0.0 0.0 ... dotimes ;; Functions like PROF:SHOW-FLAT-PROFILE, SHOW-CALL-GRAPH ;; and CL:DISASSEMBLE will find a profile when a name is supplied ;; as the value of the :PROFILE argument. At the beginning of this ;; example, we saved a profile named FOO: ;; cl-user(16): (prof:show-flat-profile :profile 'foo) Sampling stopped after 1 samples taken for the time profiler. Sample represents .0 seconds of user+system CPU time. Times below 1.0% will be suppressed. % % self total self total Function Time Cum. secs secs calls ms/call ms/call name 100.0 100.0 0.0 0.0 "sigprocmask" cl-user(17):
See runtime-analyzer.htm for general information on profiling and the runtime analyzer.
Copyright (c) 1998-2022, Franz Inc. Lafayette, CA., USA. All rights reserved.
This page is new in the 10.1 release.
Created 2019.8.20.
| Allegro CL version 10.1 New since the initial 10.1 release. |