diff options
author | Julius Knorr <jus@bitgrid.net> | 2025-04-10 17:03:00 +0200 |
---|---|---|
committer | Julius Knorr <jus@bitgrid.net> | 2025-04-22 08:57:02 +0200 |
commit | 3fc9a9952182772119f1bab994b3142fddfad4fd (patch) | |
tree | e9182ea9f94f16131253826b95756feb01e0ab36 /lib/base.php | |
parent | cb4fcd0f40439dde8a5db42d74f1c5cdc3b2bab9 (diff) | |
download | nextcloud-server-perf/excimer.tar.gz nextcloud-server-perf/excimer.zip |
perf: Add config options to trigger individual and sample profiling using excimerperf/excimer
Signed-off-by: Julius Knorr <jus@bitgrid.net>
Diffstat (limited to 'lib/base.php')
-rw-r--r-- | lib/base.php | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/base.php b/lib/base.php index 0ed282eff00..aa463e206a3 100644 --- a/lib/base.php +++ b/lib/base.php @@ -7,6 +7,7 @@ declare(strict_types=1); * SPDX-License-Identifier: AGPL-3.0-only */ use OC\Encryption\HookManager; +use OC\Profiler\BuiltInProfiler; use OC\Share20\GroupDeletedListener; use OC\Share20\Hooks; use OC\Share20\UserDeletedListener; @@ -14,6 +15,7 @@ use OC\Share20\UserRemovedListener; use OCP\EventDispatcher\IEventDispatcher; use OCP\Group\Events\GroupDeletedEvent; use OCP\Group\Events\UserRemovedEvent; +use OCP\IConfig; use OCP\ILogger; use OCP\IRequest; use OCP\IURLGenerator; @@ -126,7 +128,6 @@ class OC { } } - if (OC::$CLI) { OC::$WEBROOT = self::$config->getValue('overwritewebroot', ''); } else { @@ -522,7 +523,7 @@ class OC { * We use an additional cookie since we want to protect logout CSRF and * also we can't directly interfere with PHP's session mechanism. */ - private static function performSameSiteCookieProtection(\OCP\IConfig $config): void { + private static function performSameSiteCookieProtection(IConfig $config): void { $request = Server::get(IRequest::class); // Some user agents are notorious and don't really properly follow HTTP @@ -635,6 +636,16 @@ class OC { self::$server = new \OC\Server(\OC::$WEBROOT, self::$config); self::$server->boot(); + try { + $profiler = new BuiltInProfiler( + Server::get(IConfig::class), + Server::get(IRequest::class), + ); + $profiler->start(); + } catch (\Throwable $e) { + logger('core')->error('Failed to start profiler: ' . $e->getMessage(), ['app' => 'base']); + } + if (self::$CLI && in_array('--' . \OCP\Console\ReservedOptions::DEBUG_LOG, $_SERVER['argv'])) { \OC\Core\Listener\BeforeMessageLoggedEventListener::setup(); } @@ -654,7 +665,7 @@ class OC { // initialize intl fallback if necessary OC_Util::isSetLocaleWorking(); - $config = Server::get(\OCP\IConfig::class); + $config = Server::get(IConfig::class); if (!defined('PHPUNIT_RUN')) { $errorHandler = new OC\Log\ErrorHandler( \OCP\Server::get(\Psr\Log\LoggerInterface::class), |