Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F1430680
ResourceUsageFormatter.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
ResourceUsageFormatter.php
View Options
<?php
declare
(
strict_types
=
1
);
/*
* This file is part of phpunit/php-timer.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace
SebastianBergmann\Timer
;
use
function
is_float
;
use
function
memory_get_peak_usage
;
use
function
microtime
;
use
function
sprintf
;
final
class
ResourceUsageFormatter
{
/**
* @psalm-var array<string,int>
*/
private
const
SIZES
=
[
'GB'
=>
1073741824
,
'MB'
=>
1048576
,
'KB'
=>
1024
,
];
public
function
resourceUsage
(
Duration
$duration
):
string
{
return
sprintf
(
'Time: %s, Memory: %s'
,
$duration
->
asString
(),
$this
->
bytesToString
(
memory_get_peak_usage
(
true
))
);
}
/**
* @throws TimeSinceStartOfRequestNotAvailableException
*/
public
function
resourceUsageSinceStartOfRequest
():
string
{
if
(!
isset
(
$_SERVER
[
'REQUEST_TIME_FLOAT'
]))
{
throw
new
TimeSinceStartOfRequestNotAvailableException
(
'Cannot determine time at which the request started because $_SERVER[
\'
REQUEST_TIME_FLOAT
\'
] is not available'
);
}
if
(!
is_float
(
$_SERVER
[
'REQUEST_TIME_FLOAT'
]))
{
throw
new
TimeSinceStartOfRequestNotAvailableException
(
'Cannot determine time at which the request started because $_SERVER[
\'
REQUEST_TIME_FLOAT
\'
] is not of type float'
);
}
return
$this
->
resourceUsage
(
Duration
::
fromMicroseconds
(
(
1000000
*
(
microtime
(
true
)
-
$_SERVER
[
'REQUEST_TIME_FLOAT'
]))
)
);
}
private
function
bytesToString
(
int
$bytes
):
string
{
foreach
(
self
::
SIZES
as
$unit
=>
$value
)
{
if
(
$bytes
>=
$value
)
{
return
sprintf
(
'%.2f %s'
,
$bytes
>=
1024
?
$bytes
/
$value
:
$bytes
,
$unit
);
}
}
// @codeCoverageIgnoreStart
return
$bytes
.
' byte'
.
(
$bytes
!==
1
?
's'
:
''
);
// @codeCoverageIgnoreEnd
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, May 16, 19:24 (4 h, 49 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
bf/b5/e522d48c95db96dd90085d6a0493
Default Alt Text
ResourceUsageFormatter.php (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment