diff options
author | Rickard Green <rickard@erlang.org> | 2015-11-12 16:15:05 +0100 |
---|---|---|
committer | Rickard Green <rickard@erlang.org> | 2015-11-12 16:15:05 +0100 |
commit | 4f815fab536a3ec1839c2590b8f4f169a27fccac (patch) | |
tree | 49d1539f21954ffcdcb2523de1319d2d3efbf0ef /erts/doc | |
parent | ef72a791f4dc9a1816ac8ff95a612409b86de818 (diff) | |
parent | 3ac08f9b668613a4292436979eacc61863c2ab94 (diff) | |
download | otp-4f815fab536a3ec1839c2590b8f4f169a27fccac.tar.gz otp-4f815fab536a3ec1839c2590b8f4f169a27fccac.tar.bz2 otp-4f815fab536a3ec1839c2590b8f4f169a27fccac.zip |
Merge branch 'rickard/ohmq/OTP-13047'
* rickard/ohmq/OTP-13047:
Fragmented young heap generation and off_heap_message_queue option
Refactor GC
Introduce literal tag
Conflicts:
erts/doc/src/erlang.xml
erts/emulator/beam/erl_gc.c
Diffstat (limited to 'erts/doc')
-rw-r--r-- | erts/doc/src/erl.xml | 15 | ||||
-rw-r--r-- | erts/doc/src/erlang.xml | 80 |
2 files changed, 91 insertions, 4 deletions
diff --git a/erts/doc/src/erl.xml b/erts/doc/src/erl.xml index ec4a0dee05..c4eb0e16ec 100644 --- a/erts/doc/src/erl.xml +++ b/erts/doc/src/erl.xml @@ -1334,6 +1334,21 @@ <seealso marker="kernel:error_logger#warning_map/0">error_logger(3)</seealso> for further information.</p> </item> + <tag><c><![CDATA[+xFlag Value]]></c></tag> + <item> + <p>Default process flag settings.</p> + <taglist> + <tag><marker id="+xohmq"><c>+xohmq true|false</c></marker></tag> + <item><p> + Sets the default value for the process flag + <c>off_heap_message_queue</c>. If <c>+xohmq</c> is not + passed, <c>false</c> will be the default. For more information, + see the documentation of + <seealso marker="erlang#process_flag_off_heap_message_queue"><c>process_flag(off_heap_message_queue, + OHMQ)</c></seealso>. + </p></item> + </taglist> + </item> <tag><c><![CDATA[+zFlag Value]]></c></tag> <item> <p>Miscellaneous flags.</p> diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml index 93e42c1230..2e82bb62a9 100644 --- a/erts/doc/src/erlang.xml +++ b/erts/doc/src/erlang.xml @@ -4280,9 +4280,46 @@ os_prompt% </pre> <p>Returns the old value of the flag.</p> </desc> </func> - + <marker id="process_flag_off_heap_message_queue"/> <func> <name name="process_flag" arity="2" clause_i="5"/> + <fsummary>Set process flag <c>off_heap_message_queue</c> for the calling process</fsummary> + <desc> + <p>This flag determines how messages in the message queue + are stored. When the flag is:</p> + <taglist> + <tag><c>true</c></tag> + <item><p> + <em>All</em> messages in the message queue will be stored + outside of the process heap. This implies that <em>no</em> + messages in the message queue will be part of a garbage + collection of the process. + </p></item> + <tag><c>false</c></tag> + <item><p> + Messages may be placed either on the heap or outside + of the heap. + </p></item> + </taglist> + <p> + If the process potentially may get a hugh amount of messages, + you are recommended to set the flag to <c>true</c>. This since + a garbage collection with lots of messages placed on the heap + may become extremly expensive. Performance of the actual + message passing is however generally better when setting the + flag to <c>false</c>. + </p> + <p> + When changing this flag from <c>false</c> to <c>true</c>, + all messages in the message queue are moved off heap. This + work has been initiated but not completed when this function + call returns. + </p> + <p>Returns the old value of the flag.</p> + </desc> + </func> + <func> + <name name="process_flag" arity="2" clause_i="6"/> <fsummary>Sets process flag <c>priority</c> for the calling process.</fsummary> <type name="priority_level"/> <desc> @@ -4356,7 +4393,7 @@ os_prompt% </pre> </func> <func> - <name name="process_flag" arity="2" clause_i="6"/> + <name name="process_flag" arity="2" clause_i="7"/> <fsummary>Sets process flag <c>save_calls</c> for the calling process.</fsummary> <desc> <p><c><anno>N</anno></c> must be an integer in the interval 0..10000. @@ -4387,7 +4424,7 @@ os_prompt% </pre> </func> <func> - <name name="process_flag" arity="2" clause_i="7"/> + <name name="process_flag" arity="2" clause_i="8"/> <fsummary>Sets process flag <c>sensitive</c> for the calling process.</fsummary> <desc> <p>Sets or clears flag <c>sensitive</c> for the current process. @@ -4661,6 +4698,14 @@ os_prompt% </pre> monitor by name, the list item is <c>{process, {<anno>RegName</anno>, <anno>Node</anno>}}</c>.</p> </item> + <tag><c>{off_heap_message_queue, <anno>OHMQ</anno>}</c></tag> + <item> + <p>Returns the current state of the <c>off_heap_message_queue</c> + process flag. <c><anno>OHMQ</anno></c> is either <c>true</c>, or + <c>false</c>. For more information, see the documentation of + <seealso marker="#process_flag_off_heap_message_queue"><c>process_flag(off_heap_message_queue, + OHMQ)</c></seealso>.</p> + </item> <tag><c>{priority, <anno>Level</anno>}</c></tag> <item> <p><c><anno>Level</anno></c> is the current priority level for @@ -5429,6 +5474,7 @@ true</pre> <name name="spawn_opt" arity="2"/> <fsummary>Creates a new process with a fun as entry point.</fsummary> <type name="priority_level"/> + <type name="spawn_opt_option" /> <desc> <p>Returns the process identifier (pid) of a new process started by the application of <c><anno>Fun</anno></c> @@ -5444,6 +5490,7 @@ true</pre> <name name="spawn_opt" arity="3"/> <fsummary>Creates a new process with a fun as entry point on a given node.</fsummary> <type name="priority_level"/> + <type name="spawn_opt_option" /> <desc> <p>Returns the process identifier (pid) of a new process started by the application of <c><anno>Fun</anno></c> to the @@ -5458,6 +5505,7 @@ true</pre> <name name="spawn_opt" arity="4"/> <fsummary>Creates a new process with a function as entry point.</fsummary> <type name="priority_level"/> + <type name="spawn_opt_option" /> <desc> <p>Works as <seealso marker="#spawn/3">spawn/3</seealso>, except that an @@ -5559,6 +5607,18 @@ true</pre> fine-tuning an application and to measure the execution time with various <c><anno>VSize</anno></c> values.</p> </item> + <tag><c>{off_heap_message_queue, <anno>OHMQ</anno>}</c></tag> + <item> + <p>Sets the state of the <c>off_heap_message_queue</c> process + flag. <c><anno>OHMQ</anno></c> should be either <c>true</c>, or + <c>false</c>. The default <c>off_heap_message_queue</c> process + flag is determined by the + <seealso marker="erl#+xohmq"><c>+xohmq</c></seealso> <c>erl</c> + command line argument. For more information, see the + documentation of + <seealso marker="#process_flag_off_heap_message_queue"><c>process_flag(off_heap_message_queue, + <anno>OHMQ</anno>)</c></seealso>.</p> + </item> </taglist> </desc> </func> @@ -5567,6 +5627,7 @@ true</pre> <name name="spawn_opt" arity="5"/> <fsummary>Creates a new process with a function as entry point on a given node.</fsummary> <type name="priority_level"/> + <type name="spawn_opt_option" /> <desc> <p>Returns the process identifier (pid) of a new process started by the application @@ -6639,6 +6700,7 @@ ok <name name="system_info" arity="1" clause_i="65"/> <name name="system_info" arity="1" clause_i="66"/> <name name="system_info" arity="1" clause_i="67"/> + <name name="system_info" arity="1" clause_i="68"/> <fsummary>Information about the system.</fsummary> <desc> <p>Returns various information about the current system @@ -7044,7 +7106,17 @@ ok used by the runtime system. It is on the form "<major ver>.<minor ver>".</p> </item> - <tag><c>otp_release</c></tag> + <tag><marker id="system_info_off_heap_message_queue"><c>off_heap_message_queue</c></marker></tag> + <item> + <p>Returns the default value of the <c>off_heap_message_queue</c> + process flag which is either <c>true</c> or <c>false</c>. This + default is set by the <c>erl</c> command line argument + <seealso marker="erl#+xohmq"><c>+xohmq</c></seealso>. For more information on the + <c>off_heap_message_queue</c> process flag, see documentation of + <seealso marker="#process_flag_off_heap_message_queue"><c>process_flag(off_heap_message_queue, + OHMQ)</c></seealso>.</p> + </item> + <tag><marker id="system_info_otp_release"><c>otp_release</c></marker></tag> <item> <marker id="system_info_otp_release"></marker> <p>Returns a string containing the OTP release number of the |