;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(byte-code "\300\301!\210\302\303\304\305\306\307\310\311\312\313&	\207" [require cl-lib custom-declare-group profiler nil "Emacs profiler." :group lisp :version "24.3" :prefix "profiler-"] 10)
(defconst profiler-version "28.1")
(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 ""] "Default sampling interval in nanoseconds." :type natnum :group profiler] 8)#@15 

(fn OBJECT)
(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 (#$ . 551)])#@23 

(fn NUMBER DIVISOR)
(defalias 'profiler-format-percent #[514 "\300\301\302\303_\"\"\207" [format "%d%%" floor 100.0] 7 (#$ . 746)])#@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\211C\244\262S\262A\262\202 \311\312@\310=\203S A\202T \"\207\313!\207" [0 floor log 10 3 append number-to-string nil 44 apply string profiler-ensure-string] 9 (#$ . 887)])#@23 

(fn FMT &rest ARGS)
(defalias 'profiler-format #[385 "\300\211\211\211\300\211\211\211\211\n:\203\336 \n@\262\211A\262\242\262\n\211A\262\242\262	@\262:\203\336 @\262:\203F \301\302	#\202l ;\203U \303\"\202l 9\203i \304!\203i !\202l \305!\262G\262	\306U\203\202 C\244\262\202\317 	W\203\240 \307\306\f\310Z]\311\312	%\210C\244\262\202\317 \313\306\fZ]\314\"\n\315\267\202\277 P\202\311 \211P\202\311 \316\317\f\320#\205\311 \300\262C\244\262\nA\262A\262\300\262\202 \301\321\"\207" [nil apply profiler-format format fboundp profiler-ensure-string 0 put-text-property 2 invisible profiler make-string 32 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (left 178 right 184)) error "cl-ecase failed: %s, %s" (left right) concat] 20 (#$ . 1302)])#@105 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 %#x>" sxhash byte-code-function-p "#<compiled %#x>" subrp "%s" "#<unknown %#x>"] 5 (#$ . 2160)])#@14 

(fn ENTRY)
(defalias 'profiler-fixup-entry #[257 "\2119\203 \207\300!\207" [profiler-format-entry] 3 (#$ . 2583)])#@18 

(fn BACKTRACE)
(defalias 'profiler-fixup-backtrace #[257 "\300\301\302\303\"\"\207" [apply vector mapcar profiler-fixup-entry] 6 (#$ . 2707)])#@57 Compare LOG1 with LOG2 and return diff.

(fn LOG1 LOG2)
(defalias 'profiler-compare-logs #[514 "\300\301\302\"\303\304\305\"\"\210\303\304\306#\"\210\207" [make-hash-table :test equal maphash make-closure #[514 "\301\300#\207" [V0 puthash] 6 "\n\n(fn BACKTRACE COUNT)"] #[514 "\302\303\301\304#Z\300#\207" [V0 V1 puthash gethash 0] 8 "\n\n(fn BACKTRACE COUNT)"]] 8 (#$ . 2858)])#@12 

(fn LOG)
(defalias 'profiler-fixup-log #[257 "\300\301\302\"\303\304\305\"\"\210\207" [make-hash-table :test equal maphash make-closure #[514 "\301\302!\300#\207" [V0 puthash profiler-fixup-backtrace] 6 "\n\n(fn BACKTRACE COUNT)"]] 6 (#$ . 3253)])#@77 compiler-macro for inlining `profiler-profile-tag'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'profiler-profile-tag--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-tag (progn (aref cl-x 0))) nil] 9 (#$ . 3512)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop profiler-profile-tag compiler-macro profiler-profile-tag--cmacro] 4)#@65 Access slot "tag" of `profiler-profile' struct CL-X.

(fn CL-X)
(defalias 'profiler-profile-tag #[257 "\211\300H\207" [0] 3 (#$ . 3905)])
(byte-code "\300\301\302\303#\300\207" [function-put profiler-profile-tag side-effect-free t] 4)#@81 compiler-macro for inlining `profiler-profile-version'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'profiler-profile-version--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-version (progn (aref cl-x 1))) nil] 9 (#$ . 4145)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop profiler-profile-version compiler-macro profiler-profile-version--cmacro] 4)#@69 Access slot "version" of `profiler-profile' struct CL-X.

(fn CL-X)
(defalias 'profiler-profile-version #[257 "\211\300H\207" [1] 3 (#$ . 4558)])
(byte-code "\300\301\302\303#\300\207" [function-put profiler-profile-version side-effect-free t] 4)#@78 compiler-macro for inlining `profiler-profile-type'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'profiler-profile-type--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-type (progn (aref cl-x 2))) nil] 9 (#$ . 4810)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop profiler-profile-type compiler-macro profiler-profile-type--cmacro] 4)#@66 Access slot "type" of `profiler-profile' struct CL-X.

(fn CL-X)
(defalias 'profiler-profile-type #[257 "\211\300H\207" [2] 3 (#$ . 5208)])
(byte-code "\300\301\302\303#\300\207" [function-put profiler-profile-type side-effect-free t] 4)#@77 compiler-macro for inlining `profiler-profile-log'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'profiler-profile-log--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-log (progn (aref cl-x 3))) nil] 9 (#$ . 5451)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop profiler-profile-log compiler-macro profiler-profile-log--cmacro] 4)#@65 Access slot "log" of `profiler-profile' struct CL-X.

(fn CL-X)
(defalias 'profiler-profile-log #[257 "\211\300H\207" [3] 3 (#$ . 5844)])
(byte-code "\300\301\302\303#\300\207" [function-put profiler-profile-log side-effect-free t] 4)#@83 compiler-macro for inlining `profiler-profile-timestamp'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'profiler-profile-timestamp--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-timestamp (progn (aref cl-x 4))) nil] 9 (#$ . 6084)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop profiler-profile-timestamp compiler-macro profiler-profile-timestamp--cmacro] 4)#@71 Access slot "timestamp" of `profiler-profile' struct CL-X.

(fn CL-X)
(defalias 'profiler-profile-timestamp #[257 "\211\300H\207" [4] 3 (#$ . 6507)])
(byte-code "\300\301\302\303#\300\207" [function-put profiler-profile-timestamp side-effect-free t] 4)#@80 compiler-macro for inlining `profiler-profile-diff-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'profiler-profile-diff-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-diff-p (progn (aref cl-x 5))) nil] 9 (#$ . 6765)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop profiler-profile-diff-p compiler-macro profiler-profile-diff-p--cmacro] 4)#@68 Access slot "diff-p" of `profiler-profile' struct CL-X.

(fn CL-X)
(defalias 'profiler-profile-diff-p #[257 "\211\300H\207" [5] 3 (#$ . 7173)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put profiler-profile-diff-p side-effect-free t defalias copy-profiler-profile copy-sequence] 4)#@122 compiler-macro for inlining `profiler-make-profile'.

(fn CL-WHOLE &cl-quote &key TAG VERSION TYPE LOG TIMESTAMP DIFF-P)
(defalias '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\203e \211@\311>\203M \211A\204E \312\313@\"\210\211AA\262\202/ \314>A@\203\\ \315\262\202/ \312\316@\"\210\202/ \210\317\320\321\315\315&\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) error "Missing argument for %s" :allow-other-keys nil "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 (#$ . 7478)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop profiler-make-profile compiler-macro profiler-make-profile--cmacro] 4)#@102 Constructor for objects of type `profiler-profile'.

(fn &key TAG VERSION TYPE LOG TIMESTAMP DIFF-P)
(defalias 'profiler-make-profile #[128 "\301\302\"\206 \303A@\301\304\"\206 \305DA@\301\306\"A@\301\307\"A@\301\310\"A@\301\311\"A@\211\203g \211@\312>\203O \211A\204G \313\314@\"\210\211AA\262\2021 \315>A@\203^ \305\262\2021 \313\316@\"\210\2021 \210\317&\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) error "Missing argument for %s" :allow-other-keys "Keyword argument %s not one of (:tag :version :type :log :timestamp :diff-p)" vector] 14 (#$ . 8513)])
(byte-code "\300\301\302\303#\304\305\306\211\307\306\310\311\305\306&	\207" [function-put profiler-make-profile side-effect-free t cl-struct-define profiler-profile nil vector ((tag 'profiler-profile) (version profiler-version) (type) (log) (timestamp) (diff-p)) cl-struct-profiler-profile-tags] 11)#@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 (#$ . 9533)])#@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 (#$ . 9912)])#@76 Write PROFILE into file FILENAME.

(fn PROFILE FILENAME &optional CONFIRM)
(defalias 'profiler-write-profile #[770 "\302\303\304\"r\211q\210\305\306\"\216\307\211\310\311!p\"*\210\312\"*\207" [print-length print-level generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] nil print profiler-fixup-profile write-file] 7 (#$ . 10194)])#@49 Read profile from file FILENAME.

(fn FILENAME)
(defalias 'profiler-read-profile #[257 "\300\301\302\"r\211q\210\303\304\"\216\305!\210eb\210\306p!*\207" [generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] insert-file-contents read] 5 (#$ . 10597)])#@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\267\202 \301\302!\205 \302 \207\303 \207\304\305!\206 \304\306!\207" [#s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (cpu 6 mem 15)) fboundp profiler-cpu-running-p profiler-memory-running-p profiler-running-p cpu mem] 3 (#$ . 10916)])
(defvar profiler-cpu-log nil)
(defvar profiler-memory-log nil)#@21 Return CPU profile.
(defalias 'profiler-cpu-profile #[0 "\302\303\304	\305 \306&\207" [profiler-version profiler-cpu-log vector profiler-profile cpu current-time nil] 7 (#$ . 11447)])#@24 Return memory profile.
(defalias 'profiler-memory-profile #[0 "\302\303\304	\305 \306&\207" [profiler-version profiler-memory-log vector profiler-profile memory current-time nil] 7 (#$ . 11638)])#@76 compiler-macro for inlining `profiler-calltree-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'profiler-calltree-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-p (and (memq (type-of cl-x) cl-struct-profiler-calltree-tags) t)) nil] 9 (#$ . 11841)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop profiler-calltree-p compiler-macro profiler-calltree-p--cmacro] 4)#@13 

(fn CL-X)
(defalias 'profiler-calltree-p #[257 "\301!>\205	 \302\207" [cl-struct-profiler-calltree-tags type-of t] 3 (#$ . 12271)])
(byte-code "\300\301\302\303#\300\301\304\305#\306\307\310\301#\300\207" [function-put profiler-calltree-p side-effect-free error-free pure t define-symbol-prop profiler-calltree cl-deftype-satisfies] 6)#@80 compiler-macro for inlining `profiler-calltree-entry'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'profiler-calltree-entry--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-entry (progn (or (profiler-calltree-p cl-x) (signal 'wrong-type-argument (list 'profiler-calltree cl-x))) (aref cl-x 1))) nil] 9 (#$ . 12616)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop profiler-calltree-entry compiler-macro profiler-calltree-entry--cmacro] 4)#@68 Access slot "entry" of `profiler-calltree' struct CL-X.

(fn CL-X)
(defalias 'profiler-calltree-entry #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-profiler-calltree-tags type-of signal wrong-type-argument profiler-calltree 1] 5 (#$ . 13118)])
(byte-code "\300\301\302\303#\300\207" [function-put profiler-calltree-entry side-effect-free t] 4)#@80 compiler-macro for inlining `profiler-calltree-count'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'profiler-calltree-count--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-count (progn (or (profiler-calltree-p cl-x) (signal 'wrong-type-argument (list 'profiler-calltree cl-x))) (aref cl-x 2))) nil] 9 (#$ . 13488)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop profiler-calltree-count compiler-macro profiler-calltree-count--cmacro] 4)#@68 Access slot "count" of `profiler-calltree' struct CL-X.

(fn CL-X)
(defalias 'profiler-calltree-count #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-profiler-calltree-tags type-of signal wrong-type-argument profiler-calltree 2] 5 (#$ . 13990)])
(byte-code "\300\301\302\303#\300\207" [function-put profiler-calltree-count side-effect-free t] 4)#@88 compiler-macro for inlining `profiler-calltree-count-percent'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'profiler-calltree-count-percent--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-count-percent (progn (or (profiler-calltree-p cl-x) (signal 'wrong-type-argument (list 'profiler-calltree cl-x))) (aref cl-x 3))) nil] 9 (#$ . 14360)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop profiler-calltree-count-percent compiler-macro profiler-calltree-count-percent--cmacro] 4)#@76 Access slot "count-percent" of `profiler-calltree' struct CL-X.

(fn CL-X)
(defalias 'profiler-calltree-count-percent #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-profiler-calltree-tags type-of signal wrong-type-argument profiler-calltree 3] 5 (#$ . 14902)])
(byte-code "\300\301\302\303#\300\207" [function-put profiler-calltree-count-percent side-effect-free t] 4)#@81 compiler-macro for inlining `profiler-calltree-parent'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'profiler-calltree-parent--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-parent (progn (or (profiler-calltree-p cl-x) (signal 'wrong-type-argument (list 'profiler-calltree cl-x))) (aref cl-x 4))) nil] 9 (#$ . 15296)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop profiler-calltree-parent compiler-macro profiler-calltree-parent--cmacro] 4)#@69 Access slot "parent" of `profiler-calltree' struct CL-X.

(fn CL-X)
(defalias 'profiler-calltree-parent #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-profiler-calltree-tags type-of signal wrong-type-argument profiler-calltree 4] 5 (#$ . 15803)])
(byte-code "\300\301\302\303#\300\207" [function-put profiler-calltree-parent side-effect-free t] 4)#@83 compiler-macro for inlining `profiler-calltree-children'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'profiler-calltree-children--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-children (progn (or (profiler-calltree-p cl-x) (signal 'wrong-type-argument (list 'profiler-calltree cl-x))) (aref cl-x 5))) nil] 9 (#$ . 16176)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop profiler-calltree-children compiler-macro profiler-calltree-children--cmacro] 4)#@71 Access slot "children" of `profiler-calltree' struct CL-X.

(fn CL-X)
(defalias 'profiler-calltree-children #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-profiler-calltree-tags type-of signal wrong-type-argument profiler-calltree 5] 5 (#$ . 16693)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put profiler-calltree-children side-effect-free t defalias copy-profiler-calltree copy-sequence] 4)#@127 compiler-macro for inlining `profiler-make-calltree'.

(fn CL-WHOLE &cl-quote &key ENTRY COUNT COUNT-PERCENT PARENT CHILDREN)
(defalias 'profiler-make-calltree--cmacro #[385 "\300\301\"A@\300\302\"\206 \303A@\300\304\"\206 \305A@\300\306\"A@\300\307\"A@\211\203] \211@\310>\203E \211A\204= \311\312@\"\210\211AA\262\202' \313>A@\203T \314\262\202' \311\315@\"\210\202' \210\316\317\320\314\n\314\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) error "Missing argument for %s" :allow-other-keys nil "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 (record 'profiler-calltree entry count count-percent parent children))] 18 (#$ . 17129)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop profiler-make-calltree compiler-macro profiler-make-calltree--cmacro] 4)#@107 Constructor for objects of type `profiler-calltree'.

(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\203] \211@\310>\203E \211A\204= \311\312@\"\210\211AA\262\202' \313>A@\203T \314\262\202' \311\315@\"\210\202' \210\316\317&\207" [plist-member :entry :count (nil 0) :count-percent (nil "") :parent :children (:entry :count :count-percent :parent :children :allow-other-keys) error "Missing argument for %s" :allow-other-keys nil "Keyword argument %s not one of (:entry :count :count-percent :parent :children)" record profiler-calltree] 13 (#$ . 18169)])
(byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303&	\207" [function-put profiler-make-calltree side-effect-free t cl-struct-define profiler-calltree nil cl-structure-object record ((cl-tag-slot) (entry) (count 0) (count-percent "") (parent) (children)) cl-struct-profiler-calltree-tags] 11)#@13 

(fn TREE)
(defalias 'profiler-calltree-leaf-p #[257 "\301!>\204 \302\303\304D\"\210\211\305H?\207" [cl-struct-profiler-calltree-tags type-of signal wrong-type-argument profiler-calltree 5] 5 (#$ . 19194)])#@12 

(fn A B)
(defalias 'profiler-calltree-count< #[514 "\301!>\204 \302\303\304D\"\210\305H\306=\203 \306\207\301!>\204( \302\303\304D\"\210\211\305H\306=\2032 \307\207\301!>\204A \302\303\304D\"\210\310H\301!>\204S \302\303\304D\"\210\310HW\207" [cl-struct-profiler-calltree-tags type-of signal wrong-type-argument profiler-calltree 1 t nil 2] 7 (#$ . 19411)])#@12 

(fn A B)
(defalias 'profiler-calltree-count> #[514 "\300\"?\207" [profiler-calltree-count<] 5 (#$ . 19793)])#@13 

(fn TREE)
(defalias 'profiler-calltree-depth #[257 "\301\302!>\204 \303\304\305D\"\210\306H\211\262\203  \211T\262\202 \207" [cl-struct-profiler-calltree-tags 0 type-of signal wrong-type-argument profiler-calltree 4] 6 (#$ . 19911)])#@59 Return a child tree of ENTRY under TREE.

(fn TREE ENTRY)
(defalias 'profiler-calltree-find #[514 "\301\302!>\204 \303\304\305D\"\210\306H\211\203? \204? \211@\307\302!>\204- \303\304\305D\"\210\310H\"\2038 \211\262A\266\202\202 \207" [cl-struct-profiler-calltree-tags nil type-of signal wrong-type-argument profiler-calltree 5 function-equal 1] 10 (#$ . 20160)])#@26 

(fn CALLTREE FUNCTION)
(defalias 'profiler-calltree-walk #[514 "\211!\210\301!>\204 \302\303\304D\"\210\305H\211\205( \211@\306\"\210A\266\202\202 \207" [cl-struct-profiler-calltree-tags type-of signal wrong-type-argument profiler-calltree 5 profiler-calltree-walk] 7 (#$ . 20544)])#@35 

(fn TREE LOG &optional REVERSE)
(defalias 'profiler-calltree-build-1 #[770 "\300\301\302#\"\207" [maphash make-closure #[514 "\301G\303\211W\205m \300\203 \202 ZSH\211\203e \304\"\211\204J \305\306\303\307	\310&\262\311!\n>\204@ \312\313\306D\"\210\314\314HBI\210\311!\n>\204Y \312\313\306D\"\210\211\315\315H\\I\210\262\210\211T\262\202 \207" [V0 V1 cl-struct-profiler-calltree-tags 0 profiler-calltree-find record profiler-calltree "" nil type-of signal wrong-type-argument 5 2] 14 "\n\n(fn BACKTRACE COUNT)"]] 8 (#$ . 20844)])
(define-hash-table-test 'profiler-function-equal 'function-equal #[257 "\300!\203\n \211\301H\207\211\242\302=\203 \211AA\207\207" [byte-code-function-p 1 closure] 3 "\n\n(fn F)"])#@17 

(fn TREE LOG)
(defalias 'profiler-calltree-build-unified #[514 "\301\302\303\"\301\302\304\"\305\306\307\310\311\312&\313!>\204\" \314\315\306D\"\210\316\316HBI\210\317\320\321\"\"\210\317\320\322#\"\210\317\320\323	$\"\207" [cl-struct-profiler-calltree-tags make-hash-table :test profiler-function-equal eq record profiler-calltree \... 0 #1="" nil type-of signal wrong-type-argument 5 maphash make-closure #[514 "G\211S\301\211W\205* H\211\203\" B\302\303\300\"B\300#\266\210\211T\262\202 \207" [V0 0 puthash gethash] 13 "\n\n(fn BACKTRACE COUNT)"] #[514 "GSH\302T\303\301\"\211\211\203\231 \211@\211\242\243\nY\204& \304\305!\210\306\fHH\"\2048 \304\307!\210\211S\262S\262\211\310V\203R \306HH\"\2048 W\203\220 \nZX\204g \304\311!\210\312\211=\203w \302\211\262\202| \303\300\"A\211\262\204i \203\216 \262\nB\262\266\266A\266\202\202 \210\313\300#\207" [V0 V1 nil gethash cl--assertion-failed (>= match imatch) function-equal (function-equal (aref backtrace max) (aref parent i)) 0 (<= (- max i) best-match) t puthash] 18 "\n\n(fn BACKTRACE COUNT)"] #[514 "\302\304BC\211G\305\301\"\211\262\203 B\262A\262\202 @ASH\203C \306\300!>\2046 \307\310\311\300D\"\210\300\312\300\312H\\I\210\300\262\211\205\272 \211@\211\242\243S\211V\203\261 HS\262\211\203\255 \313\n\"\211\204\222 \314\311\315\316\317&\262\306!>\204\207 \307\310\311D\"\210\n\320\320HBI\210\306!>\204\241 \307\310\311D\"\210\211\312\312H\\I\210\262\n\210\202P \266A\266\202\202D \207" [V0 V1 V2 cl-struct-profiler-calltree-tags -1 gethash type-of signal wrong-type-argument profiler-calltree 2 profiler-calltree-find record 0 #1# nil 5] 20 "\n\n(fn BACKTRACE COUNT)"]] 11 (#$ . 21597)])#@13 

(fn TREE)
(defalias 'profiler-calltree-compute-percentages #[257 "\301C\302!>\204 \303\304\305D\"\210\306H\211\2039 \211@\211\242\302!>\204, \303\304\305D\"\210\307H\\\240\210A\266\202\202 \210\211\242\301U?\205I \310\311\312\"\"\207" [cl-struct-profiler-calltree-tags 0 type-of signal wrong-type-argument profiler-calltree 5 2 profiler-calltree-walk make-closure #[257 "\302!	>\204 \303\304\305D\"\210\211\306\307\302!	>\204\" \303\304\305D\"\210\310H\300\242\"I\207" [V0 cl-struct-profiler-calltree-tags type-of signal wrong-type-argument profiler-calltree 3 profiler-format-percent 2] 8 "\n\n(fn NODE)"]] 10 (#$ . 23389)])#@25 

(fn LOG &key REVERSE)
(defalias 'profiler-calltree-build #[385 "\300\301\"A@\211\203< \211@\302>\203% \211A\204 \303\304@\"\210\211AA\262\202 \305>A@\2033 \306\262\202 \303\307@\"\210\202 \210\310\311\306\312\313\306\211&\203S \314#\210\202X \315\"\210\316!\210\207" [plist-member :reverse (:reverse :allow-other-keys) error "Missing argument for %s" :allow-other-keys nil "Keyword argument %s not one of (:reverse)" record profiler-calltree 0 "" profiler-calltree-build-1 profiler-calltree-build-unified profiler-calltree-compute-percentages] 10 (#$ . 24043)])#@23 

(fn TREE PREDICATE)
(defalias 'profiler-calltree-sort #[514 "\301!>\204 \302\303\304D\"\210\305H\301!>\204! \302\303\304D\"\210\305\306\"I\210\301!>\2048 \302\303\304D\"\210\305H\211\205M \211@\307\"\210A\266\202\202; \207" [cl-struct-profiler-calltree-tags type-of signal wrong-type-argument profiler-calltree 5 sort profiler-calltree-sort] 8 (#$ . 24631)])
(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 #1=""] "An indicator of closed calltrees." :type string :group profiler profiler-report-open-mark #[0 "\300\207" ["-"] 1 #1#] "An indicator of open calltrees." profiler-report-leaf-mark #[0 "\300\207" [" "] 1 #1#] "An indicator of calltree leaves."] 8)
(defvar profiler-report-cpu-line-format '((17 right ((12 right) (5 right))) (1 left "%s") (0 left)))
(defvar profiler-report-memory-line-format '((20 right ((15 right profiler-format-number) (5 right))) (1 left "%s") (0 left)))#@22 The current profile.
(defvar profiler-report-profile nil (#$ . 25747))
(make-variable-buffer-local 'profiler-report-profile)#@84 Non-nil if calltree is rendered in bottom-up.
Do not touch this variable directly.
(defvar profiler-report-reversed nil (#$ . 25877))
(make-variable-buffer-local 'profiler-report-reversed)#@84 The value can be `ascending' or `descending'.
Do not touch this variable directly.
(defvar profiler-report-order nil (#$ . 26071))
(make-variable-buffer-local 'profiler-report-order)#@14 

(fn ENTRY)
(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\313\314&	\202) \315!\303\316#\207" [t "Others" fboundp propertize symbol-name face link follow-link "" mouse-face highlight help-echo "mouse-2: jump to definition\nRET: expand or collapse" profiler-format-entry profiler-entry] 11 (#$ . 26259)])#@13 

(fn TREE)
(defalias 'profiler-report-make-name-part #[257 "\303!>\204 \304\305\306D\"\210\211\307H\310!\311S\307_\312\"\313!\203& 	\202' \n\314!\315\316$\207" [cl-struct-profiler-calltree-tags profiler-report-leaf-mark profiler-report-closed-mark type-of signal wrong-type-argument profiler-calltree 1 profiler-calltree-depth make-string 32 profiler-calltree-leaf-p profiler-report-make-entry-part format "%s%s %s"] 11 (#$ . 26660)])#@23 

(fn FMT &rest ARGS)
(defalias 'profiler-report-header-line-format #[385 "\300\301#\302\303\304#\305\306\307\310\311\312%P\207" [apply profiler-format string-replace "%" "%%" propertize " " display (space :align-to 0) face fixed-pitch] 10 (#$ . 27112)])#@13 

(fn TREE)
(defalias 'profiler-report-line-format #[257 "\304H\305!\306!	>\204 \307\310\311D\"\210\312H\306!	>\204( \307\310\311D\"\210\313H\314\312H\211\315\267\202= \n\202F \202F \316\317\320#\205F \321\262\203_ \322V\203Y \323\324\"\202Z \325D\202b D\326$\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 type-of signal wrong-type-argument profiler-calltree 2 3 profiler-format #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (cpu 53 memory 57)) error "cl-ecase failed: %s, %s" (cpu memory) nil 0 format "+%s" "" " "] 11 (#$ . 27376)])#@13 

(fn TREE)
(defalias 'profiler-report-insert-calltree #[257 "\300!\301\302P\303#c\207" [profiler-report-line-format propertize "\n" calltree] 6 (#$ . 28094)])#@13 

(fn TREE)
(defalias 'profiler-report-insert-calltree-children #[257 "\301\302\303!>\204 \304\305\306D\"\210\307H\"\207" [cl-struct-profiler-calltree-tags mapc profiler-report-insert-calltree type-of signal wrong-type-argument profiler-calltree 5] 7 (#$ . 28262)])#@36 Keymap for `profiler-report-mode'.
(defvar profiler-report-mode-map (define-keymap "n" 'profiler-report-next-entry "p" 'profiler-report-previous-entry "RET" 'profiler-report-toggle-entry "TAB" 'profiler-report-toggle-entry "i" 'profiler-report-toggle-entry "f" 'profiler-report-find-entry "j" 'profiler-report-find-entry "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 "C-x C-w" 'profiler-report-write-profile "<follow-link>" 'mouse-face "<mouse-2>" 'profiler-report-find-entry :menu '("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"])) (#$ . 28538))#@16 

(fn PROFILE)
(defalias 'profiler-report-make-buffer-name #[257 "\300\301\302H\211\303\267\202 \304\202 \305\202 \306\307\310#\205 \311\262\312\313\314H\"#\207" [format "*%s-Profiler-Report %s*" 2 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (cpu 11 memory 15)) CPU Memory error "cl-ecase failed: %s, %s" (cpu memory) nil format-time-string "%Y-%m-%d %T" 4] 8 (#$ . 30870)])#@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 (#$ . 31299)])#@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\207" [profiler-report-setup-buffer-1 profiler-report-render-calltree] 3 (#$ . 31635)])
(defalias 'profiler--xref-backend #[0 "\300\207" [elisp] 1])
(defvar profiler-report-mode-hook nil)
(byte-code "\300\301N\204\f \302\300\301\303#\210\304\305!\204 \302\305\306\307#\210\300\207" [profiler-report-mode-hook variable-documentation put "Hook run after entering Profiler-Report mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp profiler-report-mode-map definition-name profiler-report-mode] 4)
(defvar profiler-report-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204 \303\301\302\304\305!#\210\306\307!\204* \303\307\310\311#\210\312\307\306\307!\203& \313\202( \314 \"\210\307\302N\2048 \303\307\302\304\315!#\210\306\300!\204X \303\300\310\311#\210\312\300\306\300!\203P \313\202V \316\300\313\"\210\"\210\300\302N\204f \303\300\302\304\317!#\210\303\311\320\321#\207" [profiler-report-mode-abbrev-table profiler-report-mode-map variable-documentation put purecopy "Keymap for `profiler-report-mode'." boundp profiler-report-mode-syntax-table definition-name profiler-report-mode defvar-1 nil make-syntax-table "Syntax table for `profiler-report-mode'." define-abbrev-table "Abbrev table for `profiler-report-mode'." derived-mode-parent special-mode] 5)#@234 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
or penultimate step during initialization.

\{profiler-report-mode-map}
(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\325!C#\210\327!\210\330\f!\210!\331\332!\210\333\334\335\336\307$\210\307\211\"#\307$)\337\340!\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) add-hook xref-backend-functions profiler--xref-backend nil run-mode-hooks profiler-report-mode-hook local-abbrev-table buffer-read-only buffer-undo-list truncate-lines] 6 (#$ . 33153) nil])#@24 

(fn &optional POINT)
(defalias 'profiler-report-calltree-at-point #[256 "\300\206 `\301\"\207" [get-text-property calltree] 4 (#$ . 34379)])
(defalias 'profiler-report-move-to-entry #[0 "\300\301 \302\"\211\203\f \211b\207\303 \207" [next-single-property-change line-beginning-position profiler-entry back-to-indentation] 3])#@28 Move cursor to next entry.
(defalias 'profiler-report-next-entry #[0 "\300y\210\301 \207" [nil profiler-report-move-to-entry] 1 (#$ . 34714) nil])#@32 Move cursor to previous entry.
(defalias 'profiler-report-previous-entry #[0 "\300y\210\301 \207" [-1 profiler-report-move-to-entry] 1 (#$ . 34866) 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 (#$ . 35025) "P"])#@26 Collapse entry at point.
(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 \211V\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 (#$ . 35633) nil])#@155 Expand entry at point if the tree is collapsed, otherwise collapse.
With prefix argument, expand all subentries below entry at
point.

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

(fn &optional EVENT)
(defalias 'profiler-report-find-entry #[256 "r\211\203 \301\302!\211@\262!\202 pq\210\211\203% \303!\211\262\203% \304!\210\305 \211\205B \306!>\204: \307\310\311D\"\210\211\312H\313!\262)\207" [cl-struct-profiler-calltree-tags window-buffer event-start event-end posn-set-point profiler-report-calltree-at-point type-of signal wrong-type-argument profiler-calltree 1 find-function] 6 (#$ . 36504) (list last-nonmenu-event)])#@26 Describe entry at point.
(defalias 'profiler-report-describe-entry #[0 "\301 \211\205! \302!>\204 \303\304\305D\"\210\211\306H\307\310!\210\311!\262\207" [cl-struct-profiler-calltree-tags profiler-report-calltree-at-point type-of signal wrong-type-argument profiler-calltree 1 require help-fns describe-function] 5 (#$ . 36990) nil])#@51 

(fn PROFILE &key REVERSE (ORDER \='descending))
(defalias 'profiler-report-render-calltree-1 #[385 "\304\305\"A@\304\306\"\206 \307A@\211\203F \211@\310>\203/ \211A\204' \311\312@\"\210\211AA\262\202 \313>A@\203= \314\262\202 \311\315@\"\210\202 \210\316\317H\305#\320H\211\321\267\202m \322\323\324D\325\326$\202v \322	\327\324D\325\326$\202v \311\330\331#\205v \314\262\332\267\202\207 \333\202\220 \334\202\220 \311\330\335#\205\220 \314\336\"\266\337\340 \210\341!\210eb\210\342 )\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) error "Missing argument for %s" :allow-other-keys nil "Keyword argument %s not one of (:reverse :order)" profiler-calltree-build 3 2 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (cpu 87 memory 98)) profiler-report-header-line-format "Samples" "%" " " "  Function" "Bytes" "cl-ecase failed: %s, %s" (cpu memory) #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (ascending 127 descending 131)) profiler-calltree-count< profiler-calltree-count> (ascending descending) profiler-calltree-sort t erase-buffer profiler-report-insert-calltree-children profiler-report-move-to-entry] 11 (#$ . 37335)])
(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])#@23 Render calltree view.
(defalias 'profiler-report-render-calltree #[0 "\301\302 \207" [profiler-report-reversed nil profiler-report-rerender-calltree] 1 (#$ . 38914) nil])#@32 Render reversed calltree view.
(defalias 'profiler-report-render-reversed-calltree #[0 "\301\302 \207" [profiler-report-reversed t profiler-report-rerender-calltree] 1 (#$ . 39091) nil])#@40 Sort calltree view in ascending order.
(defalias 'profiler-report-ascending-sort #[0 "\301\302 \207" [profiler-report-order ascending profiler-report-rerender-calltree] 1 (#$ . 39284) nil])#@41 Sort calltree view in descending order.
(defalias 'profiler-report-descending-sort #[0 "\301\302 \207" [profiler-report-order descending profiler-report-rerender-calltree] 1 (#$ . 39480) nil])#@16 

(fn PROFILE)
(defalias 'profiler-report-profile #[257 "\300\301!!\207" [switch-to-buffer profiler-report-setup-buffer] 4 (#$ . 39679)])#@16 

(fn PROFILE)
(defalias 'profiler-report-profile-other-window #[257 "\300\301!!\207" [switch-to-buffer-other-window profiler-report-setup-buffer] 4 (#$ . 39823)])#@16 

(fn PROFILE)
(defalias 'profiler-report-profile-other-frame #[257 "\300\301!!\207" [switch-to-buffer-other-frame profiler-report-setup-buffer] 4 (#$ . 39993)])#@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 (#$ . 40161) (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 (#$ . 40433) (byte-code "\302\303\"	?D\207" [default-directory current-prefix-arg read-file-name "Write profile: "] 3)])#@443 Start/restart profilers.
MODE can be one of `cpu', `mem', or `cpu+mem'.
If MODE is `cpu' or `cpu+mem', start the time-based profiler,
   whereby CPU is sampled periodically using the SIGPROF signal.
If MODE is `mem' or `cpu+mem', start profiler that samples CPU
   whenever memory-allocation functions are called -- this is useful
   if SIGPROF is not supported, or is unreliable, or is not sampling
   at a high enough frequency.

(fn MODE)
(defalias 'profiler-start #[257 "\211\301\267\202  \302!\210\303\304!\207\305 \210\303\306!\207\302!\210\305 \210\303\307!\207\310\311\312#\205) \313\207" [profiler-sampling-interval #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (cpu 6 mem 14 cpu+mem 21)) profiler-cpu-start message "CPU profiler started" profiler-memory-start "Memory profiler started" "CPU and memory profiler started" error "cl-ecase failed: %s, %s" (cpu mem cpu+mem) nil] 5 (#$ . 40753) (byte-code "\300\301!\204\n \302\202 \303\304\305\306\307\"\310\311\312\311\211\307&!C\207" [fboundp profiler-cpu-start mem intern completing-read format-prompt "Mode" "cpu" ("cpu" "mem" "cpu+mem") nil t] 9)])#@54 Stop started profilers.  Profiler logs will be kept.
(defalias 'profiler-stop #[0 "\302\303!\203 \303 \203 \300 \304 \203 \301 \302\305!\205 \305 \306 \307\310\203. \203. \311\202? \2036 \312\202? \203> \313\202? \314\"\207" [profiler-cpu-log profiler-memory-log fboundp profiler-cpu-running-p profiler-memory-running-p profiler-cpu-stop profiler-memory-stop message "%s profiler stopped" "CPU and memory" "Memory" "CPU" "No"] 5 (#$ . 41912) nil])#@22 Reset profiler logs.
(defalias 'profiler-reset #[0 "\302\303!\203 \303 \203 \304 \210\305 \203 \306 \210\307\211\211\207" [profiler-cpu-log profiler-memory-log fboundp profiler-cpu-running-p profiler-cpu-stop profiler-memory-running-p profiler-memory-stop nil] 3 (#$ . 42375) nil])
(defalias 'profiler-report-cpu #[0 "\205 \301\302 !\207" [profiler-cpu-log profiler-report-profile-other-window profiler-cpu-profile] 2])
(defalias 'profiler-report-memory #[0 "\205 \301\302 !\207" [profiler-memory-log profiler-report-profile-other-window profiler-memory-profile] 2])#@27 Report profiling results.
(defalias 'profiler-report #[0 "\302\303!\203 \303 \203 \300 \304 \203 \301 \204\" 	\204\" \305\306!\207\307 \210\310 \207" [profiler-cpu-log profiler-memory-log fboundp profiler-cpu-running-p profiler-memory-running-p user-error "No profiler run recorded" profiler-report-cpu profiler-report-memory] 2 (#$ . 42956) nil])#@39 Open profile FILENAME.

(fn FILENAME)
(defalias 'profiler-find-profile #[257 "\300\301!!\207" [profiler-report-profile profiler-read-profile] 4 (#$ . 43315) (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 (#$ . 43565) (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 (#$ . 43841) (byte-code "\301\302\"C\207" [default-directory read-file-name "Find profile: "] 3)])
(provide 'profiler)
