Your IP : 216.73.216.48


Current Path : /usr/X11R6/share/emacs/24.5/lisp/
Upload File :
Current File : //usr/X11R6/share/emacs/24.5/lisp/profiler.elc

;ELC
;;; Compiled
;;; in Emacs version 24.5.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\300\302!\210\303\304\305\306\307\310\311\312\313\314&	\207" [require cl-lib pcase custom-declare-group profiler nil "Emacs profiler." :group lisp :version "24.3" :prefix "profiler-"] 10)
(defconst profiler-version "24.3")
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable profiler-sampling-interval funcall function #[0 "\300\207" [1000000] 1 "\n\n(fn)"] "Default sampling interval in nanoseconds." :type integer :group profiler] 8)
(defalias 'profiler-ensure-string #[257 "\211;\203\207\2119\203\300!\207\211\247\203\301!\207\302\303\"\207" [symbol-name number-to-string format "%s"] 4 "\n\n(fn OBJECT)"])
(defalias 'profiler-format-percent #[514 "\300\301_\245!\302P\207" [number-to-string 100 "%"] 5 "\n\n(fn NUMBER DIVISOR)"])
#@54 Format NUMBER in human readable string.

(fn NUMBER)
(defalias 'profiler-format-number #[257 "\211\250\203V\211\300V\203V\301\302\303\"!T\304\246\305\306!\307\"\307\211:\203E@\262\300U\2034\211\310C\244\262\304\262\211C\244\262S\262A\262\202\311\312@\310=\203SA\202T\"\207\313!\207" [0 floor log 10 3 append number-to-string nil 44 apply string profiler-ensure-string] 9 (#$ . 1215)])
(defalias 'profiler-format #[385 "\300\211\211\211\300\211\211\211	:\203\315	@\262\211A\262\242\262	\211A\262\242\262@\262:\203\315@\262:\203B\301\302#\202g;\203P\303\"\202g9\203d\304!\203d!\202g\305!\262G\262W\203\213\211\306\307\310Z]\311\312%\210C\244\262\202\301\211\313\307Z]\314\"\315\n\316\"\203\243P\202\273\315\n\317\"\203\261\211P\202\273\320\321\322#\205\273\300\262C\244\262	A\262\nA\262\202\n\301\323\"\207" [nil apply profiler-format format fboundp profiler-ensure-string put-text-property 0 2 invisible profiler make-string 32 eql left right error "cl-ecase failed: %s, %s" (left right) concat] 19 "\n\n(fn FMT &rest ARGS)"])
#@106 Format ENTRY in human readable string.  ENTRY would be a
function name of a function itself.

(fn ENTRY)
(defalias 'profiler-format-entry #[257 "\211\242\300>\203\301\302\303!\"\207\304!\203\301\305\303!\"\207\306!\204+\2119\204+\211;\2030\301\307\"\207\301\310\303!\"\207" [(closure lambda) format "#<lambda 0x%x>" sxhash byte-code-function-p "#<compiled 0x%x>" subrp "%s" "#<unknown 0x%x>"] 5 (#$ . 2354)])
(defalias 'profiler-fixup-entry #[257 "\2119\203\207\300!\207" [profiler-format-entry] 3 "\n\n(fn ENTRY)"])
(defalias 'profiler-fixup-backtrace #[257 "\300\301\302\303\"\"\207" [apply vector mapcar profiler-fixup-entry] 6 "\n\n(fn BACKTRACE)"])
#@57 Compare LOG1 with LOG2 and return diff.

(fn LOG1 LOG2)
(defalias 'profiler-compare-logs #[514 "\300\301\302\"\303\304\305\306\307\310!\311\"\312\313%\"\210\303\304\305\314\307\310\"\315\"\316\313%\"\210\211\207" [make-hash-table :test equal maphash make-byte-code 514 "\301\300#\207" vconcat vector [puthash] 6 "\n\n(fn BACKTRACE COUNT)" "\302\303\300\304#Z\301#\207" [puthash gethash 0] 8] 11 (#$ . 3031)])
(defalias 'profiler-fixup-log #[257 "\300\301\302\"\303\304\305\306\307\310!\311\"\312\313%\"\210\211\207" [make-hash-table :test equal maphash make-byte-code 514 "\301\302!\300#\207" vconcat vector [puthash profiler-fixup-backtrace] 6 "\n\n(fn BACKTRACE COUNT)"] 9 "\n\n(fn LOG)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:profiler-profile-tag--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-tag (aref cl-x 0)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put profiler-profile-tag compiler-macro #1#] 4] 4)
(defalias 'profiler-profile-tag #[257 "\211\300H\207" [0] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:profiler-profile-version--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-version (aref cl-x 1)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put profiler-profile-version compiler-macro #1#] 4] 4)
(defalias 'profiler-profile-version #[257 "\211\300H\207" [1] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:profiler-profile-type--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-type (aref cl-x 2)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put profiler-profile-type compiler-macro #1#] 4] 4)
(defalias 'profiler-profile-type #[257 "\211\300H\207" [2] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:profiler-profile-log--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-log (aref cl-x 3)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put profiler-profile-log compiler-macro #1#] 4] 4)
(defalias 'profiler-profile-log #[257 "\211\300H\207" [3] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:profiler-profile-timestamp--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-timestamp (aref cl-x 4)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put profiler-profile-timestamp compiler-macro #1#] 4] 4)
(defalias 'profiler-profile-timestamp #[257 "\211\300H\207" [4] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:profiler-profile-diff-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-diff-p (aref cl-x 5)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put profiler-profile-diff-p compiler-macro #1#] 4] 4)
(defalias 'profiler-profile-diff-p #[257 "\211\300H\207" [5] 3 "\n\n(fn CL-X)"])
(defalias 'copy-profiler-profile #[257 "\300!\207" [copy-sequence] 3 "\n\n(fn X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:profiler-make-profile--cmacro #[385 "\300\301\"\206\302A@\300\303\"\206\304A@\300\305\"A@\300\306\"A@\300\307\"A@\300\310\"A@\211\203Z\211@\311>\203B\211AA\262\202/\312>A@\203Q\313\262\202/\314\315@\"\210\202/\210\316\317\320\313\313&\207" [plist-member :tag (nil 'profiler-profile) :version (nil profiler-version) :type :log :timestamp :diff-p (:tag :version :type :log :timestamp :diff-p :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:tag :version :type :log :timestamp :diff-p)" cl--defsubst-expand (tag version type log timestamp diff-p) (cl-block profiler-make-profile (vector tag version type log timestamp diff-p))] 20 "\n\n(fn CL-WHOLE &cl-quote &key TAG VERSION TYPE LOG TIMESTAMP DIFF-P)"]] 3 "\300\301\302\303#\207" [put profiler-make-profile compiler-macro #1#] 4] 4)
#@51 

(fn &key TAG VERSION TYPE LOG TIMESTAMP DIFF-P)
(defalias 'profiler-make-profile #[128 "\301\302\"\206\303A@\301\304\"\206\305DA@\301\306\"A@\301\307\"A@\301\310\"A@\301\311\"A@\211\203\\\211@\312>\203D\211AA\262\2021\313>A@\203S\305\262\2021\314\315@\"\210\2021\210\316&\207" [profiler-version plist-member :tag (nil profiler-profile) :version nil :type :log :timestamp :diff-p (:tag :version :type :log :timestamp :diff-p :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:tag :version :type :log :timestamp :diff-p)" vector] 14 (#$ . 7490)])
(byte-code "\301C\302\303\304\305#\210\302\303\306\307#\210\302\303\310\311#\210\302\303\312\311#\210\302\313\314\315#\210\302\316\314\315#\210\302\317\314\315#\210\302\320\314\315#\210\302\321\314\315#\210\302\322\314\315#\210\302\323\314\315#\210\302\324\314\315#\207" [cl-struct-profiler-profile-tags cl-struct-profiler-profile put profiler-profile cl-struct-slots ((tag 'profiler-profile) (version profiler-version) (type) (log) (timestamp) (diff-p)) cl-struct-type (vector nil) cl-struct-include nil cl-struct-print profiler-make-profile side-effect-free t copy-profiler-profile profiler-profile-diff-p profiler-profile-timestamp profiler-profile-log profiler-profile-type profiler-profile-version profiler-profile-tag] 4)
#@73 Compare PROFILE1 with PROFILE2 and return diff.

(fn PROFILE1 PROFILE2)
(defalias 'profiler-compare-profiles #[514 "\300H\300H=\204\301\302!\210\303\304\300H\305\306 \307\310\311\312\n\313H\n\313H\"&\207" [2 error "Can't compare different type of profiles" profiler-make-profile :type :timestamp current-time :diff-p t :log profiler-compare-logs 3] 14 (#$ . 8836)])
#@80 Fixup PROFILE so that the profile could be serialized into file.

(fn PROFILE)
(defalias 'profiler-fixup-profile #[257 "\300\301\302H\303\304H\305\306H\307\310	\311H!&\207" [profiler-make-profile :type 2 :timestamp 4 :diff-p 5 :log profiler-fixup-log 3] 12 (#$ . 9216)])
#@76 Write PROFILE into file FILENAME.

(fn PROFILE FILENAME &optional CONFIRM)
(defalias 'profiler-write-profile #[770 "\302\303!r\211q\210\304\305\306\307\310\311!\312\"\313\314%DC\216\315\211\316\317!p\"\210*\320\"*\207" [print-length print-level generate-new-buffer " *temp*" funcall make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 "\n\n(fn)" nil print profiler-fixup-profile write-file] 11 (#$ . 9499)])
#@49 Read profile from file FILENAME.

(fn FILENAME)
(defalias 'profiler-read-profile #[257 "\300\301!r\211q\210\302\303\304\305\306\307!\310\"\311\312%DC\216\313!\210eb\210\314p!*\207" [generate-new-buffer " *temp*" funcall make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 "\n\n(fn)" insert-file-contents read] 9 (#$ . 9959)])
#@142 Return non-nil if the profiler is running.
Optional argument MODE means only check for the specified mode (cpu or mem).

(fn &optional MODE)
(defalias 'profiler-running-p #[256 "\211\300=\203\301\302!\205!\302 \207\211\303=\203\304 \207\305\300!\206!\305\303!\207" [cpu fboundp profiler-cpu-running-p mem profiler-memory-running-p profiler-running-p] 3 (#$ . 10334)])
#@27 Return CPU profile.

(fn)
(defalias 'profiler-cpu-profile #[0 "\300\301!\205\302\303\301\304\305 \306\307 &\207" [profiler-running-p cpu profiler-make-profile :type :timestamp current-time :log profiler-cpu-log] 7 (#$ . 10714)])
#@30 Return memory profile.

(fn)
(defalias 'profiler-memory-profile #[0 "\300 \205\301\302\303\304\305 \306\307 &\207" [profiler-memory-running-p profiler-make-profile :type memory :timestamp current-time :log profiler-memory-log] 7 (#$ . 10952)])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:profiler-calltree-entry--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-entry (or (and (memq (aref cl-x 0) cl-struct-profiler-calltree-tags)) (error "%s accessing a non-%s" 'profiler-calltree-entry 'profiler-calltree)) (aref cl-x 1)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put profiler-calltree-entry compiler-macro #1#] 4] 4)
(defalias 'profiler-calltree-entry #[257 "\211\301H>\204\302\303\304\305#\210\211\306H\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-entry profiler-calltree 1] 5 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:profiler-calltree-count--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-count (or (and (memq (aref cl-x 0) cl-struct-profiler-calltree-tags)) (error "%s accessing a non-%s" 'profiler-calltree-count 'profiler-calltree)) (aref cl-x 2)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put profiler-calltree-count compiler-macro #1#] 4] 4)
(defalias 'profiler-calltree-count #[257 "\211\301H>\204\302\303\304\305#\210\211\306H\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-count profiler-calltree 2] 5 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:profiler-calltree-count-percent--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-count-percent (or (and (memq (aref cl-x 0) cl-struct-profiler-calltree-tags)) (error "%s accessing a non-%s" 'profiler-calltree-count-percent 'profiler-calltree)) (aref cl-x 3)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put profiler-calltree-count-percent compiler-macro #1#] 4] 4)
(defalias 'profiler-calltree-count-percent #[257 "\211\301H>\204\302\303\304\305#\210\211\306H\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-count-percent profiler-calltree 3] 5 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:profiler-calltree-parent--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-parent (or (and (memq (aref cl-x 0) cl-struct-profiler-calltree-tags)) (error "%s accessing a non-%s" 'profiler-calltree-parent 'profiler-calltree)) (aref cl-x 4)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put profiler-calltree-parent compiler-macro #1#] 4] 4)
(defalias 'profiler-calltree-parent #[257 "\211\301H>\204\302\303\304\305#\210\211\306H\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-parent profiler-calltree 4] 5 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:profiler-calltree-children--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-children (or (and (memq (aref cl-x 0) cl-struct-profiler-calltree-tags)) (error "%s accessing a non-%s" 'profiler-calltree-children 'profiler-calltree)) (aref cl-x 5)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put profiler-calltree-children compiler-macro #1#] 4] 4)
(defalias 'profiler-calltree-children #[257 "\211\301H>\204\302\303\304\305#\210\211\306H\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-children profiler-calltree 5] 5 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:profiler-calltree-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-p (and (vectorp cl-x) (>= (length cl-x) 6) (memq (aref cl-x 0) cl-struct-profiler-calltree-tags) t)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put profiler-calltree-p compiler-macro #1#] 4] 4)
(defalias 'profiler-calltree-p #[257 "\301!\205\211G\302Y\205\211\303H>\205\304\207" [cl-struct-profiler-calltree-tags vectorp 6 0 t] 3 "\n\n(fn CL-X)"])
(defalias 'copy-profiler-calltree #[257 "\300!\207" [copy-sequence] 3 "\n\n(fn X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:profiler-make-calltree--cmacro #[385 "\300\301\"A@\300\302\"\206\303A@\300\304\"\206\305A@\300\306\"A@\300\307\"A@\211\203R\211@\310>\203:\211AA\262\202'\311>A@\203I\312\262\202'\313\314@\"\210\202'\210\315\316\317\312\n\312\n\n\n\n\n&\n\207" [plist-member :entry :count (nil 0) :count-percent (nil "") :parent :children (:entry :count :count-percent :parent :children :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:entry :count :count-percent :parent :children)" cl--defsubst-expand (entry count count-percent parent children) (cl-block profiler-make-calltree (vector 'cl-struct-profiler-calltree entry count count-percent parent children))] 18 "\n\n(fn CL-WHOLE &cl-quote &key ENTRY COUNT COUNT-PERCENT PARENT CHILDREN)"]] 3 "\300\301\302\303#\207" [put profiler-make-calltree compiler-macro #1#] 4] 4)
#@55 

(fn &key ENTRY COUNT COUNT-PERCENT PARENT CHILDREN)
(defalias 'profiler-make-calltree #[128 "\300\301\"A@\300\302\"\206\303A@\300\304\"\206\305A@\300\306\"A@\300\307\"A@\211\203R\211@\310>\203:\211AA\262\202'\311>A@\203I\312\262\202'\313\314@\"\210\202'\210\315\316&\207" [plist-member :entry :count (nil 0) :count-percent (nil "") :parent :children (:entry :count :count-percent :parent :children :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:entry :count :count-percent :parent :children)" vector cl-struct-profiler-calltree] 13 (#$ . 16633)])
(byte-code "\301C\302\303\304\305#\210\302\303\306\307#\210\302\303\310\311#\210\302\303\312\313#\210\302\314\315\313#\210\302\316\315\313#\210\302\317\315\320#\210\302\321\315\313#\210\302\322\315\313#\210\302\323\315\313#\210\302\324\315\313#\210\302\325\315\313#\207" [cl-struct-profiler-calltree-tags cl-struct-profiler-calltree put profiler-calltree cl-struct-slots ((cl-tag-slot) (entry) (count 0) (count-percent "") (parent) (children)) cl-struct-type (vector nil) cl-struct-include nil cl-struct-print t profiler-make-calltree side-effect-free copy-profiler-calltree profiler-calltree-p error-free profiler-calltree-children profiler-calltree-parent profiler-calltree-count-percent profiler-calltree-count profiler-calltree-entry] 4)
(defalias 'profiler-calltree-leaf-p #[257 "\211\301H>\204\302\303\304\305#\210\211\306H?\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-children profiler-calltree 5] 5 "\n\n(fn TREE)"])
(defalias 'profiler-calltree-count< #[514 "\301H>\204\302\303\304\305#\210\306H\307=\203\307\207\211\301H>\204&\302\303\304\305#\210\211\306H\307=\2030\310\207\301H>\204>\302\303\311\305#\210\312H\301H>\204O\302\303\311\305#\210\312HW\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-entry profiler-calltree 1 t nil profiler-calltree-count 2] 7 "\n\n(fn A B)"])
(defalias 'profiler-calltree-count> #[514 "\300\"?\207" [profiler-calltree-count<] 5 "\n\n(fn A B)"])
(defalias 'profiler-calltree-depth #[257 "\301\301H>\204\302\303\304\305#\210\306H\211\262\203\211T\262\202\211\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-parent profiler-calltree 4] 6 "\n\n(fn TREE)"])
#@59 Return a child tree of ENTRY under TREE.

(fn TREE ENTRY)
(defalias 'profiler-calltree-find #[514 "\301\302H>\204\303\304\305\306#\210\307H\211\203=\204=\211@\310\302H>\204+\303\304\311\306#\210\312H\"\2036\211\262A\266\202\202\207" [cl-struct-profiler-calltree-tags nil 0 error "%s accessing a non-%s" profiler-calltree-children profiler-calltree 5 function-equal profiler-calltree-entry 1] 10 (#$ . 19012)])
(defalias 'profiler-calltree-walk #[514 "\211!\210\301H>\204\302\303\304\305#\210\306H\211\205'\211@\307\"\210A\266\202\202\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-children profiler-calltree 5 profiler-calltree-walk] 7 "\n\n(fn CALLTREE FUNCTION)"])
(defalias 'profiler-calltree-build-1 #[770 "\300\301\302\303\304\305\"\306\"\307\310%\"\207" [maphash make-byte-code 514 "\300G\211\303\211W\205u\211\301\203\202\304\305#H\211\203l\306\"\211\204P\307\310\303\311\312&\262\303H\n>\204D\313\314\315\316#\210\211\317\317HBI\266\211\303H\n>\204^\313\314\320\316#\210\211\211\321\321H\\I\266\262\266\211T\262\202\266\202\207" vconcat vector [cl-struct-profiler-calltree-tags 0 - 1 profiler-calltree-find vector cl-struct-profiler-calltree "" nil error "%s accessing a non-%s" profiler-calltree-children profiler-calltree 5 profiler-calltree-count 2] 16 "\n\n(fn BACKTRACE COUNT)"] 11 "\n\n(fn TREE LOG &optional REVERSE)"])
(define-hash-table-test 'profiler-function-equal 'function-equal #[257 "\300!\203\n\211\301H\207\211\242\302=\203\211\211AA\207\207" [byte-code-function-p 1 closure] 3 "\n\n(fn F)"])
(defalias 'profiler-calltree-build-unified #[514 "\301\302\303\"\301\302\304\"\305\306\307\310!\311$\312H>\204\313\314\315\316#\210\211\317\317HBI\266\320\321\322\323\324\325!\326\"\327\330%\"\210\320\321\322\331\324\325\"\332\"\333\330%\"\210\320\321\322\334\324\325\n#\335\"\336\330%\"\207" [cl-struct-profiler-calltree-tags make-hash-table :test profiler-function-equal eq profiler-make-calltree :entry intern "..." :parent 0 error #1="%s accessing a non-%s" profiler-calltree-children profiler-calltree 5 maphash make-byte-code 514 "G\211S\301\211W\205.\211H\211\203%B\300\302\303\"B#\266\266\211T\262\202\266\202\207" vconcat vector [0 puthash gethash] 16 "\n\n(fn BACKTRACE COUNT)" "GSH\302T\303\300\"\211\211\203\240\211@\211@A\211\nY\204)\304\305\306C\"\210\307HH\"\204<\304\305\310C\"\210\211S\262S\262\211\311V\203V\307HH\"\204<\nW\203\227\fZ\nX\204m\304\305\312C\"\210\313\211=\203}\302\211\262\202\202\303\301\"A\211\262\204o\203\225\262\fB\262
\266\266A\266\202\202\210\314\301#\207" [nil gethash signal cl-assertion-failed (>= match imatch) function-equal (function-equal (aref backtrace max) (aref parent i)) 0 (<= (- max i) best-match) t puthash] 20 "\300\304BC\211G\305\301\"\211\262\203B\262A\262\202\211@A\262SH\203G\302\306H>\2048\307\310\311\312#\210\302\211\313\313H\\I\266\302\262\211\205\301\211@\211@A\211S\211V\203\270HS\262\211\203\264\314\f\"\211\204\230\315\316\306\317\320&\262\f\306H>\204\214\307\310\321\312#\210\f\211\322\322HBI\266\211\306H>\204\246\307\310\311\312#\210\211\211\313\313H\\I\266\262\f\210\202W\266A\266\202\202H\262\207" [cl-struct-profiler-calltree-tags -1 gethash 0 error #1# profiler-calltree-count profiler-calltree 2 profiler-calltree-find vector cl-struct-profiler-calltree "" nil profiler-calltree-children 5] 22] 14 "\n\n(fn TREE LOG)"])
(defalias 'profiler-calltree-compute-percentages #[257 "\301C\301H>\204\302\303\304\305#\210\306H\211\2037\211@\211\242\301H>\204*\302\303\307\305#\210\310H\\\240\210A\266\202\202\210\311\242!?\205P\312\313\314\315\316\317!\320\"\321\322%\"\207" [cl-struct-profiler-calltree-tags 0 error #1="%s accessing a non-%s" profiler-calltree-children profiler-calltree 5 profiler-calltree-count 2 zerop profiler-calltree-walk make-byte-code 257 "\211\302H	>\204\303\304\305\306#\210\211\211\307\310\302H	>\204 \303\304\311\306#\210\312H\300\242\"I\207" vconcat vector [cl-struct-profiler-calltree-tags 0 error #1# profiler-calltree-count-percent profiler-calltree 3 profiler-format-percent profiler-calltree-count 2] 9 "\n\n(fn NODE)"] 10 "\n\n(fn TREE)"])
#@25 

(fn LOG &key REVERSE)
(defalias 'profiler-calltree-build #[385 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\304\311\312\304\211&\203H\313#\210\202M\314\"\210\315!\210\211\262\207" [plist-member :reverse (:reverse :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:reverse)" vector cl-struct-profiler-calltree 0 "" profiler-calltree-build-1 profiler-calltree-build-unified profiler-calltree-compute-percentages] 10 (#$ . 23393)])
(defalias 'profiler-calltree-sort #[514 "\301H>\204\302\303\304\305#\210\306H\301H>\204\302\303\304\305#\210\211\306\307\"I\266\301H>\2048\302\303\304\305#\210\306H\211\205M\211@\310\"\210A\266\202\202;\262\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-children profiler-calltree 5 sort profiler-calltree-sort] 9 "\n\n(fn TREE PREDICATE)"])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\311&\210\300\315\302\303\316DD\317\306\307\310\311&\207" [custom-declare-variable profiler-report-closed-mark funcall function #[0 "\300\207" ["+"] 1 "+\n\n(fn)"] "An indicator of closed calltrees." :type string :group profiler profiler-report-open-mark #[0 "\300\207" ["-"] 1 "-\n\n(fn)"] "An indicator of open calltrees." profiler-report-leaf-mark #[0 "\300\207" [" "] 1 " \n\n(fn)"] "An indicator of calltree leaves."] 8)
(defvar profiler-report-cpu-line-format '((50 left) (24 right ((19 right) (5 right)))))
(defvar profiler-report-memory-line-format '((55 left) (19 right ((14 right profiler-format-number) (5 right)))))
#@22 The current profile.
(defvar profiler-report-profile nil (#$ . 25084))
(make-variable-buffer-local 'profiler-report-profile)
#@82 True if calltree is rendered in bottom-up.  Do not touch this
variable directly.
(defvar profiler-report-reversed nil (#$ . 25215))
(make-variable-buffer-local 'profiler-report-reversed)
#@85 The value can be `ascending' or `descending'.  Do not touch
this variable directly.
(defvar profiler-report-order nil (#$ . 25408))
(make-variable-buffer-local 'profiler-report-order)
(defalias 'profiler-report-make-entry-part #[257 "\211\300=\203\n\301\202'\2119\203$\302!\203$\303\304!\305\306\307\310\311\312&\202'\313!\303\314#\207" [t "Others" fboundp propertize symbol-name face link mouse-face highlight help-echo "mouse-2: jump to definition\nRET: expand or collapse" profiler-format-entry profiler-entry] 9 "\n\n(fn ENTRY)"])
(defalias 'profiler-report-make-name-part #[257 "\211\303H>\204\304\305\306\307#\210\211\310H\311!\312S\303\\\313\"\314!\203%	\202&\n\315!\316\317$\207" [cl-struct-profiler-calltree-tags profiler-report-leaf-mark profiler-report-closed-mark 0 error "%s accessing a non-%s" profiler-calltree-entry profiler-calltree 1 profiler-calltree-depth make-string 32 profiler-calltree-leaf-p profiler-report-make-entry-part format "%s%s %s"] 11 "\n\n(fn TREE)"])
(defalias 'profiler-report-header-line-format #[385 "\300\301#\302\303\304#\305P\207" [apply profiler-format replace-regexp-in-string "%" "%%" " "] 7 "\n\n(fn FMT &rest ARGS)"])
(defalias 'profiler-report-line-format #[257 "\304H\305!\306H	>\204\307\310\311\312#\210\313H\306H	>\204%\307\310\314\312#\210\315H\316\317\313H\320\"\2036\n\202N\317\313H\321\"\203C\202N\307\322\313H\323#\205N\324\203h\306V\203b\325\326\"\202c\327D\202kD#\207" [profiler-report-profile cl-struct-profiler-calltree-tags profiler-report-cpu-line-format profiler-report-memory-line-format 5 profiler-report-make-name-part 0 error "%s accessing a non-%s" profiler-calltree-count profiler-calltree 2 profiler-calltree-count-percent 3 profiler-format eql cpu memory "cl-ecase failed: %s, %s" (cpu memory) nil format "+%s" ""] 11 "\n\n(fn TREE)"])
(defalias 'profiler-report-insert-calltree #[257 "\300!\301\302P\303#c\207" [profiler-report-line-format propertize "\n" calltree] 6 "\n\n(fn TREE)"])
(defalias 'profiler-report-insert-calltree-children #[257 "\301\302\303H>\204\304\305\306\307#\210\310H\"\207" [cl-struct-profiler-calltree-tags mapc profiler-report-insert-calltree 0 error "%s accessing a non-%s" profiler-calltree-children profiler-calltree 5] 7 "\n\n(fn TREE)"])
#@36 Keymap for `profiler-report-mode'.
(defvar profiler-report-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\307#\210\301\311\307#\210\301\312\313#\210\301\314\313#\210\301\315\313#\210\301\316\317#\210\301\320\321#\210\301\322\323#\210\301\324\325#\210\301\326\327#\210\301\330\331#\210\301\332\333#\210\334\335!\210\336\337\340\341$\210\211\207" [make-sparse-keymap define-key "n" profiler-report-next-entry "p" profiler-report-previous-entry "
" profiler-report-toggle-entry "	" "i" "f" profiler-report-find-entry "j" [mouse-2] "d" profiler-report-describe-entry "C" profiler-report-render-calltree "B" profiler-report-render-reversed-calltree "A" profiler-report-ascending-sort "D" profiler-report-descending-sort "=" profiler-report-compare-profile "" profiler-report-write-profile (lambda (#1=#:def-tmp-var) (defvar profiler-report-menu #1# #2="Menu for Profiler Report mode.")) nil easy-menu-do-define profiler-report-menu #2# ("Profiler" ["Next Entry" profiler-report-next-entry :active t :help "Move to next entry"] ["Previous Entry" profiler-report-previous-entry :active t :help "Move to previous entry"] "--" ["Toggle Entry" profiler-report-toggle-entry :active (profiler-report-calltree-at-point) :help "Expand or collapse the current entry"] ["Find Entry" profiler-report-find-entry :active (profiler-report-calltree-at-point) :help "Find the definition of the current entry"] ["Describe Entry" profiler-report-describe-entry :active (profiler-report-calltree-at-point) :help "Show the documentation of the current entry"] "--" ["Show Calltree" profiler-report-render-calltree :active profiler-report-reversed :help "Show calltree view"] ["Show Reversed Calltree" profiler-report-render-reversed-calltree :active (not profiler-report-reversed) :help "Show reversed calltree view"] ["Sort Ascending" profiler-report-ascending-sort :active (not (eq profiler-report-order 'ascending)) :help "Sort calltree view in ascending order"] ["Sort Descending" profiler-report-descending-sort :active (not (eq profiler-report-order 'descending)) :help "Sort calltree view in descending order"] "--" ["Compare Profile..." profiler-report-compare-profile :active t :help "Compare current profile with another"] ["Write Profile..." profiler-report-write-profile :active t :help "Write current profile to a file"] "--" ["Start Profiler" profiler-start :active (not (profiler-running-p)) :help "Start profiling"] ["Stop Profiler" profiler-stop :active (profiler-running-p) :help "Stop profiling"] ["New Report" profiler-report :active (profiler-running-p) :help "Make a new report"])] 6) (#$ . 27720))
(defalias 'profiler-report-make-buffer-name #[257 "\300\301\302\303H\304\"\203\305\202'\302\303H\306\"\203\307\202'\310\311\303H\312#\205'\313\314\315\316H\"#\207" [format "*%s-Profiler-Report %s*" eql 2 cpu CPU memory Memory error "cl-ecase failed: %s, %s" (cpu memory) nil format-time-string "%Y-%m-%d %T" 4] 8 "\n\n(fn PROFILE)"])
#@56 Make a buffer for PROFILE and return it.

(fn PROFILE)
(defalias 'profiler-report-setup-buffer-1 #[257 "\303!\304!r\211q\210\305 \210\306\307)\207" [profiler-report-profile profiler-report-reversed profiler-report-order profiler-report-make-buffer-name get-buffer-create profiler-report-mode nil descending] 4 (#$ . 30723)])
#@83 Make a buffer for PROFILE with rendering the profile and
return it.

(fn PROFILE)
(defalias 'profiler-report-setup-buffer #[257 "\300!r\211q\210\301 \210)\211\207" [profiler-report-setup-buffer-1 profiler-report-render-calltree] 3 (#$ . 31060)])
#@172 Hook run after entering Profiler-Report mode.
No problems result if this variable is not bound.
`add-hook' automatically binds it.  (This is true for all hook variables.)
(defvar profiler-report-mode-hook nil (#$ . 31314))
(byte-code "\300\301!\204\f\302\301\303\304#\210\300\207" [boundp profiler-report-mode-map put definition-name profiler-report-mode] 4)
(defvar profiler-report-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [profiler-report-mode-map variable-documentation put purecopy "Keymap for `profiler-report-mode'." boundp profiler-report-mode-syntax-table definition-name profiler-report-mode] 5)
(defvar profiler-report-mode-syntax-table (make-syntax-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [profiler-report-mode-syntax-table variable-documentation put purecopy "Syntax table for `profiler-report-mode'." profiler-report-mode-abbrev-table definition-name profiler-report-mode] 5)
(defvar profiler-report-mode-abbrev-table (progn (define-abbrev-table 'profiler-report-mode-abbrev-table nil) profiler-report-mode-abbrev-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [profiler-report-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `profiler-report-mode'." profiler-report-mode derived-mode-parent special-mode] 5)
#@225 Profiler Report Mode.

In addition to any hooks its parent mode `special-mode' might have run,
this mode runs the hook `profiler-report-mode-hook', as the final step
during initialization.

\{profiler-report-mode-map}

(fn)
(defalias 'profiler-report-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324
\325\"\204R
=\204R\326
\325C#\210\327!\210\330\f!\210
\331\332!\210\307\211\307 )\333\334!\207" [delay-mode-hooks major-mode mode-name profiler-report-mode-map profiler-report-mode-syntax-table profiler-report-mode-abbrev-table make-local-variable t special-mode profiler-report-mode "Profiler-Report" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table add-to-invisibility-spec (profiler . t) run-mode-hooks profiler-report-mode-hook local-abbrev-table buffer-read-only buffer-undo-list truncate-lines] 6 (#$ . 32738) nil])
(defalias 'profiler-report-calltree-at-point #[256 "\300\206`\301\"\207" [get-text-property calltree] 4 "\n\n(fn &optional POINT)"])
(defalias 'profiler-report-move-to-entry #[0 "\300\301 \302\"\211\203\211b\202\303 \207" [next-single-property-change line-beginning-position profiler-entry back-to-indentation] 3 "\n\n(fn)"])
#@34 Move cursor to next entry.

(fn)
(defalias 'profiler-report-next-entry #[0 "\300y\210\301 \207" [nil profiler-report-move-to-entry] 1 (#$ . 34204) nil])
#@38 Move cursor to previous entry.

(fn)
(defalias 'profiler-report-previous-entry #[0 "\300y\210\301 \207" [-1 profiler-report-move-to-entry] 1 (#$ . 34363) nil])
#@95 Expand entry at point.
With a prefix argument, expand the whole subtree.

(fn &optional FULL)
(defalias 'profiler-report-expand-entry #[256 "\212\303 \210\304\305P\306 \307#\205E\310 \211\205C\307\311\n\305P!\210\312y\210`\313`\307\"\314!\210\203?b\210`W\203?\315 \210\316y\210\2020\266)\307\262)\207" [profiler-report-closed-mark inhibit-read-only profiler-report-open-mark beginning-of-line search-forward " " line-end-position t profiler-report-calltree-at-point replace-match nil copy-marker profiler-report-insert-calltree-children profiler-report-expand-entry 1] 6 (#$ . 34529) "P"])
#@32 Collapse entry at point.

(fn)
(defalias 'profiler-report-collapse-entry #[0 "\212\303 \210\304\305P\306 \307#\205N\310 \311!\312\313!\314\203K\307\315\n\305P!\210\314y\316=\203E\317`\320\"\211\205:\311!\211\262\247\262\203E\211V\204$\312 |\210)\266\307)\207" [profiler-report-open-mark inhibit-read-only profiler-report-closed-mark beginning-of-line search-forward " " line-end-position t profiler-report-calltree-at-point profiler-calltree-depth line-beginning-position 2 nil replace-match 0 get-text-property calltree] 7 (#$ . 35138) nil])
#@89 Expand entry at point if the tree is collapsed,
otherwise collapse.

(fn &optional ARG)
(defalias 'profiler-report-toggle-entry #[256 "\300!\206\301 \207" [profiler-report-expand-entry profiler-report-collapse-entry] 3 (#$ . 35703) "P"])
#@44 Find entry at point.

(fn &optional EVENT)
(defalias 'profiler-report-find-entry #[256 "r\211\203\301\302!\211@\262!\202pq\210\211\203%\303!\211\262\203%\304!\210\305 \211\205A\211\306H>\2049\307\310\311\312#\210\211\313H\314!\262\262)\207" [cl-struct-profiler-calltree-tags window-buffer event-start event-end posn-set-point profiler-report-calltree-at-point 0 error "%s accessing a non-%s" profiler-calltree-entry profiler-calltree 1 find-function] 6 (#$ . 35950) (list last-nonmenu-event)])
#@32 Describe entry at point.

(fn)
(defalias 'profiler-report-describe-entry #[0 "\301 \211\205 \211\302H>\204\303\304\305\306#\210\211\307H\310\311!\210\312!\262\207" [cl-struct-profiler-calltree-tags profiler-report-calltree-at-point 0 error "%s accessing a non-%s" profiler-calltree-entry profiler-calltree 1 require help-fns describe-function] 5 (#$ . 36467) nil])
#@49 

(fn PROFILE &key REVERSE (ORDER 'descending))
(defalias 'profiler-report-render-calltree-1 #[385 "\304\305\"A@\304\306\"\206\307A@\211\203;\211@\310>\203$\211AA\262\202\311>A@\2032\312\262\202\313\314@\"\210\202\210\315\316H\305#\317\320H\321\"\203V\322\323\324\325D#\202u\317\320H\326\"\203i\322	\323\327\325D#\202u\313\330\320H\331#\205u\312\317\332\"\203\201\333\202\225\317\334\"\203\214\335\202\225\313\330\336#\205\225\312\337\"\266\340\341 \210\342!\210eb\210\343 )\262\207" [profiler-report-cpu-line-format profiler-report-memory-line-format header-line-format inhibit-read-only plist-member :reverse :order (nil descending) (:reverse :order :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:reverse :order)" profiler-calltree-build 3 eql 2 cpu profiler-report-header-line-format "Function" "CPU samples" "%" memory "Bytes" "cl-ecase failed: %s, %s" (cpu memory) ascending profiler-calltree-count< descending profiler-calltree-count> (ascending descending) profiler-calltree-sort t erase-buffer profiler-report-insert-calltree-children profiler-report-move-to-entry] 10 (#$ . 36844)])
(defalias 'profiler-report-rerender-calltree #[0 "\303\304	\305\n%\207" [profiler-report-profile profiler-report-reversed profiler-report-order profiler-report-render-calltree-1 :reverse :order] 6 "\n\n(fn)"])
#@29 Render calltree view.

(fn)
(defalias 'profiler-report-render-calltree #[0 "\301\302 \207" [profiler-report-reversed nil profiler-report-rerender-calltree] 1 (#$ . 38232) nil])
#@38 Render reversed calltree view.

(fn)
(defalias 'profiler-report-render-reversed-calltree #[0 "\301\302 \207" [profiler-report-reversed t profiler-report-rerender-calltree] 1 (#$ . 38416) nil])
#@46 Sort calltree view in ascending order.

(fn)
(defalias 'profiler-report-ascending-sort #[0 "\301\302 \207" [profiler-report-order ascending profiler-report-rerender-calltree] 1 (#$ . 38616) nil])
#@47 Sort calltree view in descending order.

(fn)
(defalias 'profiler-report-descending-sort #[0 "\301\302 \207" [profiler-report-order descending profiler-report-rerender-calltree] 1 (#$ . 38819) nil])
(defalias 'profiler-report-profile #[257 "\300\301!!\207" [switch-to-buffer profiler-report-setup-buffer] 4 "\n\n(fn PROFILE)"])
(defalias 'profiler-report-profile-other-window #[257 "\300\301!!\207" [switch-to-buffer-other-window profiler-report-setup-buffer] 4 "\n\n(fn PROFILE)"])
(defalias 'profiler-report-profile-other-frame #[257 "\300\301!!\207" [switch-to-buffer-other-frame profiler-report-setup-buffer] 4 "\n\n(fn PROFILE)"])
#@56 Compare the current profile with another.

(fn BUFFER)
(defalias 'profiler-report-compare-profile #[257 "r\211q\210)\301\"\300!\207" [profiler-report-profile profiler-compare-profiles] 6 (#$ . 39465) (byte-code "\300\301!C\207" [read-buffer "Compare to: "] 2)])
#@80 Write the current profile into file FILENAME.

(fn FILENAME &optional CONFIRM)
(defalias 'profiler-report-write-profile #[513 "\301#\207" [profiler-report-profile profiler-write-profile] 6 (#$ . 39738) (byte-code "\302\303\"	?D\207" [default-directory current-prefix-arg read-file-name "Write profile: "] 3)])
#@227 Start/restart profilers.
MODE can be one of `cpu', `mem', or `cpu+mem'.
If MODE is `cpu' or `cpu+mem', time-based profiler will be started.
Also, if MODE is `mem' or `cpu+mem', then memory profiler will be started.

(fn MODE)
(defalias 'profiler-start #[257 "\301\302\"\203\303!\210\304\305!\207\301\306\"\203\307 \210\304\310!\207\301\311\"\203/\303!\210\307 \210\304\312!\207\313\314\315#\2058\316\207" [profiler-sampling-interval eql cpu profiler-cpu-start message "CPU profiler started" mem profiler-memory-start "Memory profiler started" cpu+mem "CPU and memory profiler started" error "cl-ecase failed: %s, %s" (cpu mem cpu+mem) nil] 5 (#$ . 40059) (byte-code "\300\301!\204\n\302\202\303\304\305\306\307\310\307\211\311&!C\207" [fboundp profiler-cpu-start mem intern completing-read "Mode (default cpu): " ("cpu" "mem" "cpu+mem") nil t "cpu"] 9)])
#@60 Stop started profilers.  Profiler logs will be kept.

(fn)
(defalias 'profiler-stop #[0 "\300\301!\205\301 \302 \303\304\203\203\305\202)\203 \306\202)\203(\307\202)\310\"\207" [fboundp profiler-cpu-stop profiler-memory-stop message "%s profiler stopped" "CPU and memory" "Memory" "CPU" "No"] 5 (#$ . 40936) nil])
#@28 Reset profiler logs.

(fn)
(defalias 'profiler-reset #[0 "\300\301!\203	\301 \210\302 \210\303\207" [fboundp profiler-cpu-log profiler-memory-log t] 2 (#$ . 41271) nil])
(defalias 'profiler-report-cpu #[0 "\300 \211\205	\301!\207" [profiler-cpu-profile profiler-report-profile-other-window] 3 "\n\n(fn)"])
(defalias 'profiler-report-memory #[0 "\300 \211\205	\301!\207" [profiler-memory-profile profiler-report-profile-other-window] 3 "\n\n(fn)"])
#@33 Report profiling results.

(fn)
(defalias 'profiler-report #[0 "\300 \210\301 \207" [profiler-report-cpu profiler-report-memory] 1 (#$ . 41730) nil])
#@39 Open profile FILENAME.

(fn FILENAME)
(defalias 'profiler-find-profile #[257 "\300\301!!\207" [profiler-report-profile profiler-read-profile] 4 (#$ . 41886) (byte-code "\301\302\"C\207" [default-directory read-file-name "Find profile: "] 3)])
#@39 Open profile FILENAME.

(fn FILENAME)
(defalias 'profiler-find-profile-other-window #[257 "\300\301!!\207" [profiler-report-profile-other-window profiler-read-profile] 4 (#$ . 42137) (byte-code "\301\302\"C\207" [default-directory read-file-name "Find profile: "] 3)])
#@39 Open profile FILENAME.

(fn FILENAME)
(defalias 'profiler-find-profile-other-frame #[257 "\300\301!!\207" [profiler-report-profile-other-frame profiler-read-profile] 4 (#$ . 42414) (byte-code "\301\302\"C\207" [default-directory read-file-name "Find profile: "] 3)])
(provide 'profiler)