Finished updating Python docs for -threads option
This commit is contained in:
parent
52d12bc415
commit
bcf8d927f0
1 changed files with 60 additions and 1 deletions
|
|
@ -136,6 +136,7 @@
|
||||||
<li><a href="#Python_multithreaded">Support for Multithreaded Applications</a>
|
<li><a href="#Python_multithreaded">Support for Multithreaded Applications</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#Python_thread_UI">UI for Enabling Multithreading Support</a>
|
<li><a href="#Python_thread_UI">UI for Enabling Multithreading Support</a>
|
||||||
|
<li><a href="#Python_thread_performance">Multithread Performance</a>
|
||||||
</ul>
|
</ul>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -6760,12 +6761,70 @@ will not be able to run any other threads, even if the wrapped C/C++ code is wai
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
The <b>threads</b> module option in the *.i template file:
|
The <b>threads</b> module option in the *.i template file:
|
||||||
<div class="code">%module("threads"=1)</div>
|
<div class="code">%feature("nothread") method;</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>You can disable thread support for a given method:
|
||||||
|
<div class="code">%module("threads"=1)<br><b>or</b><br>%nothread method;</div>
|
||||||
|
</li>
|
||||||
|
<li>You can partially disable thread support for a given method:
|
||||||
|
<ul>
|
||||||
|
<li> To disable the C++/python thread protection:
|
||||||
|
<div class="code">%feature("nothreadblock") method;<br><b>or</b><br>%nothreadblock method;</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
To disable the python/C++ thread protection
|
||||||
|
<div class="code">%feature("nothreadallow") method;<br><b>or</b><br>%nothreadallow method;</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
|
<H3><a name="Python_thread_performance">36.13.2 Multithread Performance</a></H3>
|
||||||
|
<p>
|
||||||
|
For the curious about performance, here are some numbers for the profiletest.i test,
|
||||||
|
which is used to check the speed of the wrapped code:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Thread Mode</th>
|
||||||
|
<th>Execution Time (sec)</th>
|
||||||
|
<th>Comment</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Single Threaded</td>
|
||||||
|
<td>9.6</td>
|
||||||
|
<td>no "-threads" option given</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Fully Multithreaded</td>
|
||||||
|
<td>15.5</td>
|
||||||
|
<td>"-threads" option = 'allow' + 'block'</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>No Thread block</td>
|
||||||
|
<td>12.2</td>
|
||||||
|
<td>only 'allow'</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>No Thread Allow</td>
|
||||||
|
<td>13.6</td>
|
||||||
|
<td>only block'</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Fullly threaded code decreases the wrapping performance by
|
||||||
|
around 60%. If that is important to your application, you
|
||||||
|
can tune each method using the different 'nothread',
|
||||||
|
'nothreadblock' or 'nothreadallow' features as
|
||||||
|
needed. Note that for some methods deactivating the
|
||||||
|
'thread block' or 'thread allow' code is not an option,
|
||||||
|
so, be careful.
|
||||||
|
</p>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue