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:
Antony Dovgal 2009-02-13 10:46:14 +00:00
parent 8348abbc15
commit 79dbcf042c
6 changed files with 398 additions and 0 deletions

View 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
-->

View 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
-->

View 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
-->

View 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
View 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
-->

View 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
-->