mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-16 00:48:54 +00:00
add first version of PECL/memtrack docs
git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@275736 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
parent
8348abbc15
commit
79dbcf042c
6 changed files with 398 additions and 0 deletions
61
reference/memtrack/book.xml
Normal file
61
reference/memtrack/book.xml
Normal file
|
@ -0,0 +1,61 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.1 $ -->
|
||||
<!-- State: deprecated -->
|
||||
|
||||
<book xml:id="book.memtrack" xmlns="http://docbook.org/ns/docbook">
|
||||
<title>Memtrack</title>
|
||||
<titleabbrev>Memtrack</titleabbrev>
|
||||
|
||||
<preface xml:id="intro.memtrack">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
The purpose of this extension is to detect the most memory hungry scripts
|
||||
and functions.
|
||||
</para>
|
||||
<para>
|
||||
memtrack tracks memory consumption in PHP scripts and produces reports
|
||||
(warnings) when the consumption reaches certain levels set by the user.
|
||||
This is achieved by replacing default executor function by a special
|
||||
function which compares memory usage before and after running the
|
||||
original executor - this way we can tell how much the memory usage
|
||||
has changed during the execution of the current part of the code.
|
||||
</para>
|
||||
<para>
|
||||
Zend Engine runs its executor for each opcode array (op_array),
|
||||
which usually means function, plain script and such, so memtrack doesn't
|
||||
have any noticeable effect on performance.
|
||||
</para>
|
||||
<para>
|
||||
memtrack doesn't provide any functions, there are only INI directives which
|
||||
allow you to configure the way it should work.
|
||||
</para>
|
||||
&warn.experimental;
|
||||
</preface>
|
||||
|
||||
&reference.memtrack.setup;
|
||||
&reference.memtrack.constants;
|
||||
&reference.memtrack.examples;
|
||||
|
||||
</book>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"../../../manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
|
33
reference/memtrack/configure.xml
Normal file
33
reference/memtrack/configure.xml
Normal file
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.1 $ -->
|
||||
|
||||
<section xml:id="memtrack.installation" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
&reftitle.install;
|
||||
<para>
|
||||
&pecl.info;
|
||||
<link
|
||||
xlink:href="http://pecl.php.net/package/memtrack">http://pecl.php.net/package/memtrack</link>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"../../../manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
|
29
reference/memtrack/constants.xml
Normal file
29
reference/memtrack/constants.xml
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.1 $ -->
|
||||
|
||||
<appendix xml:id="memtrack.constants" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
&reftitle.constants;
|
||||
&no.constants;
|
||||
</appendix>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"../../../manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
|
67
reference/memtrack/examples.xml
Normal file
67
reference/memtrack/examples.xml
Normal file
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.1 $ -->
|
||||
|
||||
<appendix xml:id="memtrack.examples" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
&reftitle.examples;
|
||||
<section xml:id="memtrack.examples.basic">
|
||||
<para>
|
||||
Basic example on using memtrack extension:
|
||||
<example>
|
||||
<title>Creating large array in a function</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
|
||||
/* /tmp/example1.php */
|
||||
|
||||
function foo() {
|
||||
$a = array();
|
||||
for ($i = 0; $i < 10000; $i++) $a[] = "test";
|
||||
return $a;
|
||||
}
|
||||
$arr = foo();
|
||||
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
<para>
|
||||
Run the example with the following command:
|
||||
</para>
|
||||
<screen>
|
||||
<![CDATA[
|
||||
php -d memtrack.enabled=1 -d memtrack.soft_limit=1M -d memtrack.vm_limit=3M /tmp/example1.php
|
||||
]]>
|
||||
</screen>
|
||||
&example.outputs.similar;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
Warning: [memtrack] [pid 26177] user function foo() executed in /tmp/example1.php on line 10 allocated 4194304 bytes in /tmp/example1.php on line 0
|
||||
Warning: [memtrack] [pid 26177] virtual memory usage on shutdown: 32911360 bytes in Unknown on line 0
|
||||
]]>
|
||||
</screen>
|
||||
</section>
|
||||
</appendix>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"../../../manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
|
165
reference/memtrack/ini.xml
Normal file
165
reference/memtrack/ini.xml
Normal file
|
@ -0,0 +1,165 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.1 $ -->
|
||||
<section xml:id="memtrack.ini" xmlns="http://docbook.org/ns/docbook">
|
||||
&reftitle.runtime;
|
||||
&extension.runtime;
|
||||
<para>
|
||||
<table>
|
||||
<title>Memtrack Configuration Options</title>
|
||||
<tgroup cols="3">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Name</entry>
|
||||
<entry>Default</entry>
|
||||
<entry>Changeable</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>memtrack.enabled</entry>
|
||||
<entry>"0"</entry>
|
||||
<entry>PHP_INI_SYSTEM</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>memtrack.soft_limit</entry>
|
||||
<entry>"0"</entry>
|
||||
<entry>PHP_INI_ALL</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>memtrack.hard_limit</entry>
|
||||
<entry>"0"</entry>
|
||||
<entry>PHP_INI_ALL</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>memtrack.vm_limit</entry>
|
||||
<entry>"0"</entry>
|
||||
<entry>PHP_INI_ALL</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>memtrack.ignore_functions</entry>
|
||||
<entry>""</entry>
|
||||
<entry>PHP_INI_SYSTEM</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
&ini.php.constants;
|
||||
</para>
|
||||
|
||||
&ini.descriptions.title;
|
||||
|
||||
<para>
|
||||
<variablelist>
|
||||
|
||||
<varlistentry xml:id="ini.memtrack.enabled">
|
||||
<term>
|
||||
<parameter>memtrack.enabled</parameter>
|
||||
<type>boolean</type>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Disables or enables the extension. Default value is 0, i.e. disabled.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry xml:id="ini.memtrack.soft_limit">
|
||||
<term>
|
||||
<parameter>memtrack.soft_limit</parameter>
|
||||
<type>int</type>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Soft memory limit.
|
||||
</para>
|
||||
<para>
|
||||
The extension checks memory consumption before and after executing an
|
||||
op_array and produces a warning is the difference between the two values
|
||||
is equal to or greater than the soft limit, but only if the function is not
|
||||
ignored.
|
||||
</para>
|
||||
<para>
|
||||
Setting this option to 0 also disables both soft and hard limit warnings.
|
||||
Default value is 0, i.e. no warnings is produced.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry xml:id="ini.memtrack.hard_limit">
|
||||
<term>
|
||||
<parameter>memtrack.hard_limit</parameter>
|
||||
<type>int</type>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Hard memory limit.
|
||||
</para>
|
||||
<para>
|
||||
The extension checks memory consumption before and after executing an
|
||||
op_array and produces a warning is the difference between the two values
|
||||
is equal to or greater than the hard limit, <emphasis>even if the function is
|
||||
ignored</emphasis>.
|
||||
Setting this option to 0 disables hard limit warnings completely.
|
||||
Default value is 0, i.e. no hard limit warnings is produced.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry xml:id="ini.memtrack.vm_limit">
|
||||
<term>
|
||||
<parameter>memtrack.vm_limit</parameter>
|
||||
<type>int</type>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Virtual memory limit (set on a process).
|
||||
</para>
|
||||
<para>
|
||||
This limit is checked only on shutdown and a warning is produced if the
|
||||
value is greater than or equal to the limit.
|
||||
</para>
|
||||
<para>
|
||||
This option is currently supported only on OSes where mallinfo() function
|
||||
is available (i.e. Linux).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry xml:id="ini.memtrack.ignore_functions">
|
||||
<term>
|
||||
<parameter>memtrack.ignore_functions</parameter>
|
||||
<type>string</type>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
A comma or whitespace-separated list of functions which are to be ignored
|
||||
by soft_limit. The values are case-insensitive, for class methods use
|
||||
class::method syntax.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"../../../manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
43
reference/memtrack/setup.xml
Normal file
43
reference/memtrack/setup.xml
Normal file
|
@ -0,0 +1,43 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.1 $ -->
|
||||
|
||||
<chapter xml:id="memtrack.setup" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
&reftitle.setup;
|
||||
|
||||
<section xml:id="memtrack.requirements">
|
||||
&reftitle.required;
|
||||
&no.requirement;
|
||||
</section>
|
||||
|
||||
&reference.memtrack.configure;
|
||||
|
||||
&reference.memtrack.ini;
|
||||
|
||||
<section xml:id="memtrack.resources">
|
||||
&reftitle.resources;
|
||||
&no.resource;
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"../../../manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
|
Loading…
Reference in a new issue