%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
;ELC ;;; Compiled ;;; in Emacs version 25.2.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] "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\302\303_\"\"\207" [format "%d%%" floor 100.0] 7 "\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=\203S A\202T \"\207\313!\207" [0 floor log 10 3 append number-to-string nil 44 apply string profiler-ensure-string] 9 (#$ . 1207)]) (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\"\202g 9\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\243 P\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 (#$ . 2346)]) (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 (#$ . 3023)]) (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)"]) (defalias 'profiler-profile-tag--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-tag (declare (side-effect-free t)) (aref cl-x 0)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'profiler-profile-tag 'compiler-macro 'profiler-profile-tag--cmacro) (defalias 'profiler-profile-tag #[257 "\211\300H\207" [0] 3 "\n\n(fn CL-X)"]) (function-put 'profiler-profile-tag 'side-effect-free t) (defalias 'profiler-profile-version--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-version (declare (side-effect-free t)) (aref cl-x 1)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'profiler-profile-version 'compiler-macro 'profiler-profile-version--cmacro) (defalias 'profiler-profile-version #[257 "\211\300H\207" [1] 3 "\n\n(fn CL-X)"]) (function-put 'profiler-profile-version 'side-effect-free t) (defalias 'profiler-profile-type--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-type (declare (side-effect-free t)) (aref cl-x 2)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'profiler-profile-type 'compiler-macro 'profiler-profile-type--cmacro) (defalias 'profiler-profile-type #[257 "\211\300H\207" [2] 3 "\n\n(fn CL-X)"]) (function-put 'profiler-profile-type 'side-effect-free t) (defalias 'profiler-profile-log--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-log (declare (side-effect-free t)) (aref cl-x 3)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'profiler-profile-log 'compiler-macro 'profiler-profile-log--cmacro) (defalias 'profiler-profile-log #[257 "\211\300H\207" [3] 3 "\n\n(fn CL-X)"]) (function-put 'profiler-profile-log 'side-effect-free t) (defalias 'profiler-profile-timestamp--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-timestamp (declare (side-effect-free t)) (aref cl-x 4)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'profiler-profile-timestamp 'compiler-macro 'profiler-profile-timestamp--cmacro) (defalias 'profiler-profile-timestamp #[257 "\211\300H\207" [4] 3 "\n\n(fn CL-X)"]) (function-put 'profiler-profile-timestamp 'side-effect-free t) (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 (declare (side-effect-free t)) (aref cl-x 5)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'profiler-profile-diff-p 'compiler-macro 'profiler-profile-diff-p--cmacro) (defalias 'profiler-profile-diff-p #[257 "\211\300H\207" [5] 3 "\n\n(fn CL-X)"]) (byte-code "\300\301\302\303#\210\304\305\306\"\207" [function-put profiler-profile-diff-p side-effect-free t defalias copy-profiler-profile copy-sequence] 4) #@70 (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\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 "Constructor for objects of type `profiler-profile'." (declare (side-effect-free t)) (vector tag version type log timestamp diff-p))] 20 (#$ . 6520)]) (put 'profiler-make-profile 'compiler-macro 'profiler-make-profile--cmacro) #@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 \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 (#$ . 7481)]) (byte-code "\300\301\302\303#\210\304\305\306\211\307\306\310\311\312\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 cl-struct-profiler-profile] 10) #@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 (#$ . 8481)]) #@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 (#$ . 8861)]) #@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$\216\313\211\314\315!p\"\210*\316\"*\207" [print-length print-level generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 nil print profiler-fixup-profile write-file] 10 (#$ . 9144)]) #@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$\216\311!\210eb\210\312p!*\207" [generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-file-contents read] 8 (#$ . 9574)]) #@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 (#$ . 9919)]) #@21 Return CPU profile. (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 (#$ . 10298)]) #@24 Return memory profile. (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 (#$ . 10530)]) (defalias 'profiler-calltree-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-p (declare (side-effect-free error-free)) (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)"]) (put 'profiler-calltree-p 'compiler-macro 'profiler-calltree-p--cmacro) (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)"]) (byte-code "\300\301\302\303#\210\304\305\306\301#\207" [function-put profiler-calltree-p side-effect-free error-free put profiler-calltree cl-deftype-satisfies] 4) (defalias 'profiler-calltree-entry--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-entry (declare (side-effect-free t)) (or (and (memq (aref cl-x 0) cl-struct-profiler-calltree-tags)) (signal 'wrong-type-argument (list 'profiler-calltree cl-x))) (aref cl-x 1)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'profiler-calltree-entry 'compiler-macro 'profiler-calltree-entry--cmacro) (defalias 'profiler-calltree-entry #[257 "\211\301H>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-profiler-calltree-tags 0 signal wrong-type-argument profiler-calltree 1] 5 "\n\n(fn CL-X)"]) (function-put 'profiler-calltree-entry 'side-effect-free t) (defalias 'profiler-calltree-count--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-count (declare (side-effect-free t)) (or (and (memq (aref cl-x 0) cl-struct-profiler-calltree-tags)) (signal 'wrong-type-argument (list 'profiler-calltree cl-x))) (aref cl-x 2)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'profiler-calltree-count 'compiler-macro 'profiler-calltree-count--cmacro) (defalias 'profiler-calltree-count #[257 "\211\301H>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-profiler-calltree-tags 0 signal wrong-type-argument profiler-calltree 2] 5 "\n\n(fn CL-X)"]) (function-put 'profiler-calltree-count 'side-effect-free t) (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 (declare (side-effect-free t)) (or (and (memq (aref cl-x 0) cl-struct-profiler-calltree-tags)) (signal 'wrong-type-argument (list 'profiler-calltree cl-x))) (aref cl-x 3)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'profiler-calltree-count-percent 'compiler-macro 'profiler-calltree-count-percent--cmacro) (defalias 'profiler-calltree-count-percent #[257 "\211\301H>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-profiler-calltree-tags 0 signal wrong-type-argument profiler-calltree 3] 5 "\n\n(fn CL-X)"]) (function-put 'profiler-calltree-count-percent 'side-effect-free t) (defalias 'profiler-calltree-parent--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-parent (declare (side-effect-free t)) (or (and (memq (aref cl-x 0) cl-struct-profiler-calltree-tags)) (signal 'wrong-type-argument (list 'profiler-calltree cl-x))) (aref cl-x 4)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'profiler-calltree-parent 'compiler-macro 'profiler-calltree-parent--cmacro) (defalias 'profiler-calltree-parent #[257 "\211\301H>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-profiler-calltree-tags 0 signal wrong-type-argument profiler-calltree 4] 5 "\n\n(fn CL-X)"]) (function-put 'profiler-calltree-parent 'side-effect-free t) (defalias 'profiler-calltree-children--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-children (declare (side-effect-free t)) (or (and (memq (aref cl-x 0) cl-struct-profiler-calltree-tags)) (signal 'wrong-type-argument (list 'profiler-calltree cl-x))) (aref cl-x 5)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'profiler-calltree-children 'compiler-macro 'profiler-calltree-children--cmacro) (defalias 'profiler-calltree-children #[257 "\211\301H>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-profiler-calltree-tags 0 signal wrong-type-argument profiler-calltree 5] 5 "\n\n(fn CL-X)"]) (byte-code "\300\301\302\303#\210\304\305\306\"\207" [function-put profiler-calltree-children side-effect-free t defalias copy-profiler-calltree copy-sequence] 4) #@74 (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\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 "Constructor for objects of type `profiler-calltree'." (declare (side-effect-free t)) (vector 'cl-struct-profiler-calltree entry count count-percent parent children))] 18 (#$ . 15133)]) (put 'profiler-make-calltree 'compiler-macro 'profiler-make-calltree--cmacro) #@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\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 (#$ . 16110)]) (byte-code "\300\301\302\303#\210\304\305\306\307\306\211\310\311\312\303& \207" [function-put profiler-make-calltree side-effect-free t cl-struct-define profiler-calltree nil cl-structure-object ((cl-tag-slot) (entry) (count 0) (count-percent "") (parent) (children)) cl-struct-profiler-calltree-tags cl-struct-profiler-calltree] 10) (defalias 'profiler-calltree-leaf-p #[257 "\211\301H>\204 \302\303\304D\"\210\211\305H?\207" [cl-struct-profiler-calltree-tags 0 signal wrong-type-argument profiler-calltree 5] 5 "\n\n(fn TREE)"]) (defalias 'profiler-calltree-count< #[514 "\301H>\204 \302\303\304D\"\210\305H\306=\203 \306\207\211\301H>\204( \302\303\304D\"\210\211\305H\306=\2032 \307\207\301H>\204A \302\303\304D\"\210\310H\301H>\204S \302\303\304D\"\210\310HW\207" [cl-struct-profiler-calltree-tags 0 signal wrong-type-argument profiler-calltree 1 t nil 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\304D\"\210\305H\211\262\203 \211T\262\202 \211\207" [cl-struct-profiler-calltree-tags 0 signal wrong-type-argument 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\305D\"\210\306H\211\203? \204? \211@\307\302H>\204- \303\304\305D\"\210\310H\"\2038 \211\262A\266\202\202 \207" [cl-struct-profiler-calltree-tags nil 0 signal wrong-type-argument profiler-calltree 5 function-equal 1] 10 (#$ . 18018)]) (defalias 'profiler-calltree-walk #[514 "\211!\210\301H>\204 \302\303\304D\"\210\305H\211\205( \211@\306\"\210A\266\202\202 \207" [cl-struct-profiler-calltree-tags 0 signal wrong-type-argument 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\205x \211\301\203 \202 \304\305#H\211\203o \306\"\211\204R \307\310\303\311\312&\262\303H\n>\204F \313\314\315 D\"\210\211\316\316HBI\266\211\303H\n>\204a \313\314\315D\"\210\211\211\317\317H\\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 signal wrong-type-argument profiler-calltree 5 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 \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\315D\"\210\211\316\316HBI\266\317\320\321\322\323\324!\325\"\326\327%\"\210\317\320\321\330\323\324\"\331\"\332\327%\"\210\317\320\321\333\323\324\n#\334\"\335\327%\"\207" [cl-struct-profiler-calltree-tags make-hash-table :test profiler-function-equal eq profiler-make-calltree :entry intern "..." :parent 0 signal wrong-type-argument 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\232 \211@\211@A\211\nY\204' \304\305!\210\306HH\"\2048 \304\307!\210\211S\262S\262\211\310V\203R \306HH\"\2048 \nW\203\221 \fZ\nX\204g \304\311!\210\312\211=\203w \302\211\262\202| \303\301\"A\211\262\204i \203\217 \262\fB\262 \266\266A\266\202\202 \210\313\301#\207" [nil gethash 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\203 B\262A\262\202 @ASH\203E \302\306H>\2046 \307\310\311\302D\"\210\302\211\312\312H\\I\266\302\262\211\205\302 \211@\211@A\211S\211V\203\271 HS\262\211\203\265 \313\f\"\211\204\230 \314\315\306\316\317&\262\f\306H>\204\214 \307\310\311D\"\210\f\211\320\320HBI\266\211\306H>\204\247 \307\310\311D\"\210\211\211\312\312H\\I\266\262\f\210\202U \266A\266\202\202F \262\207" [cl-struct-profiler-calltree-tags -1 gethash 0 signal wrong-type-argument profiler-calltree 2 profiler-calltree-find vector cl-struct-profiler-calltree "" nil 5] 22] 14 "\n\n(fn TREE LOG)"]) (defalias 'profiler-calltree-compute-percentages #[257 "\301C\301H>\204 \302\303\304D\"\210\305H\211\2039 \211@\211\242\301H>\204, \302\303\304D\"\210\306H\\\240\210A\266\202\202 \210\211\242\301U?\205R \307\310\311\312\313\314!\315\"\316\317%\"\207" [cl-struct-profiler-calltree-tags 0 signal wrong-type-argument profiler-calltree 5 2 profiler-calltree-walk make-byte-code 257 "\211\302H >\204 \303\304\305D\"\210\211\211\306\307\302H >\204# \303\304\305D\"\210\310H\300\242\"I\207" vconcat vector [cl-struct-profiler-calltree-tags 0 signal wrong-type-argument profiler-calltree 3 profiler-format-percent 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 (#$ . 22049)]) (defalias 'profiler-calltree-sort #[514 "\301H>\204 \302\303\304D\"\210\305H\301H>\204! \302\303\304D\"\210\211\305\306\"I\266\301H>\204; \302\303\304D\"\210\305H\211\205P \211@\307\"\210A\266\202\202>