Commit graph

100 commits

Author SHA1 Message Date
Daniel Bachhuber
bb64f248f9 Support for profiling wp_loaded:after 2016-10-26 06:54:43 -07:00
Daniel Bachhuber
c2268124f4 Merge pull request #109 from runcommand/round-time-no-name-column
Ensure time is rounded when there's no name column present
2016-10-26 06:53:55 -07:00
Daniel Bachhuber
64afe65175 Use an explicit flag to indicate when the total should be displayed 2016-10-26 06:38:17 -07:00
Daniel Bachhuber
d6f4fc28f2 Ensure tick_callback is nullified when ignoring a callback 2016-10-26 06:29:07 -07:00
Daniel Bachhuber
199b515b73 Ensure time is rounded when there's no name column present
Also drops the total footer when there's only one item displayed
2016-10-26 06:17:12 -07:00
Daniel Bachhuber
c95664f0b6 Use --spotlight to filter zero-ish results from the set 2016-10-26 05:40:34 -07:00
Daniel Bachhuber
85d1c1debf Disable opcode cache when using register_tick_function() 2016-10-19 18:14:28 -07:00
Daniel Bachhuber
8ac705fc1c Merge pull request #104 from runcommand/clarify-fiels
Clarify the `--fields` argument
2016-10-19 05:49:37 -07:00
Daniel Bachhuber
20c3b66323 Clarify the --fields argument 2016-10-19 05:27:31 -07:00
Daniel Bachhuber
6a2052244a Start profiling right away when profiling muplugins_loaded:before 2016-10-19 04:56:53 -07:00
Daniel Bachhuber
54ffc02ed5 Mention that the hook needs to fire in order to profile it 2016-10-12 05:01:32 -07:00
Daniel Bachhuber
0989767e2e Shorten the code location at the point of rendering the loggers 2016-10-09 16:15:16 -07:00
Daniel Bachhuber
0a365862d3 Use more precise hooks for profiling intermediate stages 2016-10-09 15:43:02 -07:00
Daniel Bachhuber
e6a05be838 Reset tick callback after we've completed profiling 2016-10-09 10:45:38 -07:00
Daniel Bachhuber
7bb69131f2 First pass at profiling intermediate stages 2016-10-09 10:33:48 -07:00
Daniel Bachhuber
944696431a Put names to the intermediate stages
For the most part, it's `<hook>:before`, except when it's the last hook
in the sequence.
2016-10-09 09:05:27 -07:00
Daniel Bachhuber
178e0454b6 Use --all to profile callbacks on all hooks 2016-10-08 16:18:48 -07:00
Daniel Bachhuber
5f2c0f52cc Keep track of recursion in a more precise manner 2016-10-08 16:02:46 -07:00
Daniel Bachhuber
4e6cc627cf Omit <hook> to profile all called hooks 2016-10-08 07:27:46 -07:00
Daniel Bachhuber
8af2db1892 Fully resolve ABSPATH 2016-10-08 07:00:05 -07:00
Daniel Bachhuber
d15f6ac6c9 Abstract, to avoid direct manipulation of the global 2016-10-08 06:49:28 -07:00
Daniel Bachhuber
8969a5a859 Abstract profiler to a dedicated class 2016-10-08 06:37:41 -07:00
Daniel Bachhuber
96a386def8 WordPress doesn't like this last hook added to shutdown 2016-10-08 05:56:25 -07:00
Daniel Bachhuber
e403ef86e0 Indicate callback count when profiling a stage 2016-10-07 16:18:04 -07:00
Daniel Bachhuber
c5c9179af5 Use --all flag to profile all stages 2016-10-07 15:45:48 -07:00
Daniel Bachhuber
f0ad855d0a Keep track of filter depth to appropriately handle recursion 2016-10-07 15:27:29 -07:00
Daniel Bachhuber
1162a866e4 Restore existing callbacks on the next hook
While this is less precise, doing so ensures our callbacks aren't called
twice (because they'll be called twice if they're restored to the
array).
2016-10-07 14:57:06 -07:00
Daniel Bachhuber
b352251d80 Include callback definition source when profiling hooks 2016-10-07 14:20:08 -07:00
Daniel Bachhuber
bf65cfd6f2 Don't include 'total' cell when the name column is omitted 2016-10-07 13:56:38 -07:00
Daniel Bachhuber
0e9528cdcc Support profiling arbitrary file execution 2016-10-04 14:38:12 -07:00
Daniel Bachhuber
8a29fd7e57 Support profiling the shutdown hook 2016-10-04 14:10:27 -07:00
Daniel Bachhuber
c206a27eea Use wp profile eval to profile arbitrary code execution 2016-10-04 12:57:10 -07:00
Daniel Bachhuber
ee16b7982a Trailingslash provided URL to avoid canonical redirect 2016-10-04 07:18:01 -07:00
Daniel Bachhuber
87b192afa3 Regenerate README for command split 2016-10-04 06:49:18 -07:00
Daniel Bachhuber
b22d0f85c7 Split wp profile into wp profile stage and wp profile hook 2016-10-04 06:47:01 -07:00
Daniel Bachhuber
290b7ff1a0 Ensure last callback is extremely late 2016-09-28 05:27:58 -07:00
Daniel Bachhuber
b6c5ddb2a5 Fix incorrect variable 2016-09-28 05:12:54 -07:00
Daniel Bachhuber
59579ccdea Properly handle an unset $wp_filter 2016-09-27 08:10:41 -07:00
Daniel Bachhuber
7721de219e Drop method that's no longer used 2016-09-27 08:01:12 -07:00
Daniel Bachhuber
e105a5490c Take a more durable approach to timing callbacks by wrapping each 2016-09-27 07:58:36 -07:00
Daniel Bachhuber
25e1f40ea7 Fix profiling of early hooks
When we throw an Exception to bail out of the call, this means the rest
of the bootstrap code hasn't executed, and important things aren't set
up. Instead, we need to summarize early.
2016-09-23 06:33:30 -07:00
Daniel Bachhuber
b31f5c39fa Ensure the last step to a stage is logged appropriately 2016-09-08 17:42:58 -07:00
Daniel Bachhuber
a789b3ce34 Fix bottom of the table when there aren't any items displayed
The cells need to be filled in appropriately
2016-09-08 06:15:10 -07:00
Daniel Bachhuber
440a13b7ff Catch hook Exceptions incrementally
This permits our output buffering to work as expected.
2016-09-08 06:02:48 -07:00
Daniel Bachhuber
5953df52c2 Bail early when there aren't any hook callbacks to run 2016-09-08 05:43:42 -07:00
Daniel Bachhuber
e32a5653cd Register some basic hooks for the template stage 2016-08-30 06:57:55 -07:00
Daniel Bachhuber
c041dc3839 Fix error notice when SAVEQUERIES is already defined
If `SAVEQUERIES` is defined as false, then we need to bail, as query
profiling won't work.
2016-08-30 05:12:48 -07:00
Daniel Bachhuber
e50fe5ed2d Add installing and support details to README 2016-08-29 07:20:58 -07:00
Daniel Bachhuber
55d4ef7b14 Add a description as to what this command is about 2016-08-29 06:51:40 -07:00
Daniel Bachhuber
ebdd75820d Rename scopes to stages 2016-08-27 07:05:35 -07:00