Commit graph

103 commits

Author SHA1 Message Date
Daniel Bachhuber
dff51fe192 Include mention that profiling intermediate hooks is broken in PHP7 2016-11-15 08:06:31 -08:00
Daniel Bachhuber
16f905b597 Use --hook[=<hook>] to profile all hooks, or callbacks to spec hook 2016-11-14 06:30:19 -08:00
Daniel Bachhuber
0f6dee25b5 Add an inline example for wp profile stage 2016-11-03 07:18:24 -07:00
Daniel Bachhuber
e74a9487d9 Support for profiling wp_loaded:after 2016-10-26 06:54:43 -07:00
Daniel Bachhuber
0ca0cf77a0 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
60ae6e4490 Use an explicit flag to indicate when the total should be displayed 2016-10-26 06:38:17 -07:00
Daniel Bachhuber
c295a28ea1 Ensure tick_callback is nullified when ignoring a callback 2016-10-26 06:29:07 -07:00
Daniel Bachhuber
2b57115c55 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
4aef374308 Use --spotlight to filter zero-ish results from the set 2016-10-26 05:40:34 -07:00
Daniel Bachhuber
b9ea658b7e Disable opcode cache when using register_tick_function() 2016-10-19 18:14:28 -07:00
Daniel Bachhuber
922bab3f77 Merge pull request #104 from runcommand/clarify-fiels
Clarify the `--fields` argument
2016-10-19 05:49:37 -07:00
Daniel Bachhuber
75bb6f6c50 Clarify the --fields argument 2016-10-19 05:27:31 -07:00
Daniel Bachhuber
8ef779f8cd Start profiling right away when profiling muplugins_loaded:before 2016-10-19 04:56:53 -07:00
Daniel Bachhuber
d07b98046d Mention that the hook needs to fire in order to profile it 2016-10-12 05:01:32 -07:00
Daniel Bachhuber
040a9fa7b3 Shorten the code location at the point of rendering the loggers 2016-10-09 16:15:16 -07:00
Daniel Bachhuber
76fb50b5c1 Use more precise hooks for profiling intermediate stages 2016-10-09 15:43:02 -07:00
Daniel Bachhuber
870b947fd2 Reset tick callback after we've completed profiling 2016-10-09 10:45:38 -07:00
Daniel Bachhuber
7729a11118 First pass at profiling intermediate stages 2016-10-09 10:33:48 -07:00
Daniel Bachhuber
49f9159ff2 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
a553050462 Use --all to profile callbacks on all hooks 2016-10-08 16:18:48 -07:00
Daniel Bachhuber
35390961eb Keep track of recursion in a more precise manner 2016-10-08 16:02:46 -07:00
Daniel Bachhuber
828f7d618e Omit <hook> to profile all called hooks 2016-10-08 07:27:46 -07:00
Daniel Bachhuber
da5e2e1b25 Fully resolve ABSPATH 2016-10-08 07:00:05 -07:00
Daniel Bachhuber
4256195368 Abstract, to avoid direct manipulation of the global 2016-10-08 06:49:28 -07:00
Daniel Bachhuber
2ea5138f08 Abstract profiler to a dedicated class 2016-10-08 06:37:41 -07:00
Daniel Bachhuber
ff802e8de9 WordPress doesn't like this last hook added to shutdown 2016-10-08 05:56:25 -07:00
Daniel Bachhuber
7be192206e Indicate callback count when profiling a stage 2016-10-07 16:18:04 -07:00
Daniel Bachhuber
c24c302f4f Use --all flag to profile all stages 2016-10-07 15:45:48 -07:00
Daniel Bachhuber
5d4d6450ce Keep track of filter depth to appropriately handle recursion 2016-10-07 15:27:29 -07:00
Daniel Bachhuber
5a3cffcd79 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
99914b71b2 Include callback definition source when profiling hooks 2016-10-07 14:20:08 -07:00
Daniel Bachhuber
be24080cb2 Don't include 'total' cell when the name column is omitted 2016-10-07 13:56:38 -07:00
Daniel Bachhuber
6572e96664 Support profiling arbitrary file execution 2016-10-04 14:38:12 -07:00
Daniel Bachhuber
072d80e2d6 Support profiling the shutdown hook 2016-10-04 14:10:27 -07:00
Daniel Bachhuber
3ff6ba0229 Use wp profile eval to profile arbitrary code execution 2016-10-04 12:57:10 -07:00
Daniel Bachhuber
781db99ed7 Trailingslash provided URL to avoid canonical redirect 2016-10-04 07:18:01 -07:00
Daniel Bachhuber
767d9cb38c Regenerate README for command split 2016-10-04 06:49:18 -07:00
Daniel Bachhuber
7e05977968 Split wp profile into wp profile stage and wp profile hook 2016-10-04 06:47:01 -07:00
Daniel Bachhuber
98c92bca7c Ensure last callback is extremely late 2016-09-28 05:27:58 -07:00
Daniel Bachhuber
89ffa3a8cb Fix incorrect variable 2016-09-28 05:12:54 -07:00
Daniel Bachhuber
f2960d7eab Properly handle an unset $wp_filter 2016-09-27 08:10:41 -07:00
Daniel Bachhuber
024142a69a Drop method that's no longer used 2016-09-27 08:01:12 -07:00
Daniel Bachhuber
f114b404e1 Take a more durable approach to timing callbacks by wrapping each 2016-09-27 07:58:36 -07:00
Daniel Bachhuber
b991373784 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
033d53aaaf Ensure the last step to a stage is logged appropriately 2016-09-08 17:42:58 -07:00
Daniel Bachhuber
bdf94d8b1f 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
c1d7639e9b Catch hook Exceptions incrementally
This permits our output buffering to work as expected.
2016-09-08 06:02:48 -07:00
Daniel Bachhuber
f548144ab2 Bail early when there aren't any hook callbacks to run 2016-09-08 05:43:42 -07:00
Daniel Bachhuber
5a3748b62b Register some basic hooks for the template stage 2016-08-30 06:57:55 -07:00
Daniel Bachhuber
7a00bd3938 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