PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 3.8.2
WP STAGING – WordPress Backup, Restore, Migration & Clone v3.8.2
4.9.1 4.9.0 4.8.1 trunk 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.10.0 3.2.0 3.3.1 3.3.2 3.3.3 3.4.1 3.4.3 3.5.0 3.6.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4 4.0.0 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.8.0
wp-staging / Framework / Traits / BenchmarkTrait.php
wp-staging / Framework / Traits Last commit date
ArrayableTrait.php 2 years ago BenchmarkTrait.php 2 years ago BooleanTransientTrait.php 5 years ago DatabaseSearchReplaceTrait.php 2 years ago DbRowsGeneratorTrait.php 3 years ago DeveloperTimerTrait.php 4 years ago EndOfLinePlaceholderTrait.php 2 years ago EventLoggerTrait.php 1 year ago FileScanToCacheTrait.php 2 years ago HydrateTrait.php 2 years ago MaintenanceTrait.php 5 years ago MemoryExhaustTrait.php 2 years ago MySQLRowsGeneratorTrait.php 2 years ago NoticesTrait.php 2 years ago PropertyConstructor.php 5 years ago ResourceTrait.php 2 years ago ValueGetterTrait.php 1 year ago
BenchmarkTrait.php
51 lines
1 <?php
2
3 namespace WPStaging\Framework\Traits;
4
5 use WPStaging\Core\Utils\Logger;
6 use WPStaging\Core\WPStaging;
7 use WPStaging\Vendor\Psr\Log\LoggerInterface;
8
9 trait BenchmarkTrait
10 {
11 /** @var LoggerInterface To store the benchmark results. */
12 private $benchmarkLogger;
13
14 /** @var float Timestamp when the benchmark started. */
15 private $benchmarkStart = 0;
16
17 protected function startBenchmark()
18 {
19 if (defined('WPSTG_DEBUG') && WPSTG_DEBUG) {
20 /** @var Logger */
21 $this->benchmarkLogger = WPStaging::make(Logger::class);
22
23 // Eg: JobSiteBackup_Benchmark
24 $filename = sanitize_file_name(sprintf(
25 '%s_benchmark',
26 (new \ReflectionClass($this))->getShortName()
27 ));
28
29 $this->benchmarkLogger->setFileName($filename);
30 $this->benchmarkStart = microtime(true);
31 }
32 }
33
34 /**
35 * @param $context string Write a meaningful context of the benchmark, like a function name that is measured.
36 * @return void
37 */
38 protected function finishBenchmark($context)
39 {
40 if (defined('WPSTG_DEBUG') && WPSTG_DEBUG && $this->benchmarkLogger instanceof Logger) {
41 $message = sprintf(
42 'Finished %s in %s seconds',
43 $context,
44 microtime(true) - $this->benchmarkStart
45 );
46
47 $this->benchmarkLogger->info($message);
48 }
49 }
50 }
51