588 lines
30 KiB
HTML
588 lines
30 KiB
HTML
|
||
|
||
<!DOCTYPE html>
|
||
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
||
<head>
|
||
<meta charset="utf-8">
|
||
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
||
<title>Frequently Asked Questions — Terminator 1.0 alpha documentation</title>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
||
|
||
|
||
|
||
|
||
|
||
<link rel="top" title="Terminator 1.0 alpha documentation" href="index.html"/>
|
||
<link rel="next" title="Getting involved" href="gettinginvolved.html"/>
|
||
<link rel="prev" title="Advanced Usage" href="advancedusage.html"/>
|
||
|
||
|
||
<script src="_static/js/modernizr.min.js"></script>
|
||
|
||
</head>
|
||
|
||
<body class="wy-body-for-nav" role="document">
|
||
|
||
<div class="wy-grid-for-nav">
|
||
|
||
|
||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||
<div class="wy-side-nav-search">
|
||
|
||
|
||
|
||
<a href="index.html" class="icon icon-home"> Terminator
|
||
|
||
|
||
|
||
</a>
|
||
|
||
|
||
<div role="search">
|
||
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
||
<input type="text" name="q" placeholder="Search docs" />
|
||
<input type="hidden" name="check_keywords" value="yes" />
|
||
<input type="hidden" name="area" value="default" />
|
||
</form>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||
|
||
|
||
|
||
<p class="caption"><span class="caption-text">Contents:</span></p>
|
||
<ul class="current">
|
||
<li class="toctree-l1"><a class="reference internal" href="licensing.html">Licensing</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="history.html">Document history</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="gettingstarted.html">Getting Started</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#the-context-menu">The Context Menu</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#navigating-around">Navigating around</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="gettingstarted.html#click-able-items">Click-able items</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#changing-the-current-layout">Changing the current layout</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="gettingstarted.html#using-the-splitters">Using the splitters</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="gettingstarted.html#dragging-and-dropping-a-terminal">Dragging and dropping a terminal</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="gettingstarted.html#using-the-keyboard">Using the keyboard</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#resetting-the-terminal">Resetting the terminal</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#the-scrollbar-and-scrollback-buffer">The scrollbar and scrollback buffer</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#search-the-buffer">Search the buffer</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#zooming-the-terminal">Zooming the terminal</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#setting-titles">Setting Titles</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#insert-terminal-number">Insert terminal number</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#next-prev-profile">Next/Prev profile</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1"><a class="reference internal" href="preferences.html">Preferences Window</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="preferences.html#global">Global</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="preferences.html#behaviour">Behaviour</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="preferences.html#appearance">Appearance</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="preferences.html#terminal-titlebar">Terminal Titlebar</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="preferences.html#profiles">Profiles</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="preferences.html#general">General</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="preferences.html#cursor">Cursor</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="preferences.html#terminal-bell">Terminal bell</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="preferences.html#not-in-terminator">Not in Terminator</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="preferences.html#command">Command</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="preferences.html#id1">Not in Terminator</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="preferences.html#colours">Colours</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="preferences.html#foreground-and-background">Foreground and Background</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="preferences.html#palette">Palette</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="preferences.html#id2">Not in Terminator</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="preferences.html#background">Background</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="preferences.html#scrolling">Scrolling</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="preferences.html#compatibility">Compatibility</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="preferences.html#encoding">Encoding</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="preferences.html#layouts">Layouts</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="preferences.html#keybindings">Keybindings</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="preferences.html#plugins">Plugins</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="preferences.html#about">About</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1"><a class="reference internal" href="layouts.html">Layouts and the Layout Launcher</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="layouts.html#the-layout-launcher">The Layout Launcher</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1"><a class="reference internal" href="grouping.html">The Grouping Menu</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="grouping.html#manipulating-terminal-groups">Manipulating terminal groups</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="grouping.html#broadcasting-input-to-multiple-terminals">Broadcasting input to multiple terminals</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="grouping.html#insert-terminal-number">Insert terminal number</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1"><a class="reference internal" href="plugins.html">Plugins</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="plugins.html#included-plugins">Included plugins</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="plugins.html#activity-watch">Activity Watch</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="plugins.html#apt-url-handler">APT URL Handler</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="plugins.html#custom-commands-menu">Custom Commands Menu</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="plugins.html#inactivity-watch">Inactivity Watch</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="plugins.html#launchpad-bug-url-handler">Launchpad Bug URL Handler</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="plugins.html#launchpad-code-url-handler">Launchpad Code URL Handler</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="plugins.html#logger">Logger</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="plugins.html#maven-plugin-url-handler">Maven Plugin URL Handler</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="plugins.html#terminal-shot">Terminal Shot</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="plugins.html#test-plugin">Test Plugin</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="plugins.html#third-party-plugins">Third party plugins</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="plugins.html#installing-a-plugin">Installing a plugin</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="plugins.html#creating-your-own-plugins">Creating your own plugins</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="plugins.html#the-basics-of-a-plugin">The basics of a plugin</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="plugins.html#url-handlers">URL Handlers</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="plugins.html#context-menu-items">Context menu items</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="plugins.html#wrap-up">Wrap up</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1"><a class="reference internal" href="advancedusage.html">Advanced Usage</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="advancedusage.html#command-line-options">Command line options</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="advancedusage.html#general-options">General options</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="advancedusage.html#window-options">Window options</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="advancedusage.html#shell-options">Shell options</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="advancedusage.html#layout-options">Layout options</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="advancedusage.html#custom-window-manager-options">Custom Window Manager options</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="advancedusage.html#debugging-options">Debugging options</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="advancedusage.html#the-config-file">The Config file</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="advancedusage.html#debugging">Debugging</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="advancedusage.html#dbus">DBus</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="advancedusage.html#remotinator">Remotinator</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1 current"><a class="current reference internal" href="">Frequently Asked Questions</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="#why">Why...</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#write-in-python-it-s-slow-bloated-bad">...write in Python? It’s slow/bloated/bad?</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#performance">Performance</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#memory-use-the-dumb-way">Memory use - The dumb way</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#memory-use-the-sensible-way">Memory use - The sensible way</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#python-sucks">“Python sucks!”</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#in-summary">In summary</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#how-do-i">How do I...</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#make-terminator-work-like-quake-style-terminals">...make Terminator work like Quake style terminals?</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1"><a class="reference internal" href="gettinginvolved.html">Getting involved</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#translations">Translations</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#improve-icons-artwork">Improve icons/artwork</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-action-shots">Terminator action shots</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#manual-updates">Manual updates</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#testing">Testing</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#bugs">Bugs</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#plugins">Plugins</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#main-application-development">Main Application Development</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#gtk3-port">GTK3 Port</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-api-docs">Terminator API Docs</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#other-docs-for-developers">Other Docs for Developers</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</nav>
|
||
|
||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||
|
||
|
||
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
|
||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||
<a href="index.html">Terminator</a>
|
||
</nav>
|
||
|
||
|
||
|
||
<div class="wy-nav-content">
|
||
<div class="rst-content">
|
||
<div role="navigation" aria-label="breadcrumbs navigation">
|
||
<ul class="wy-breadcrumbs">
|
||
<li><a href="index.html">Docs</a> »</li>
|
||
|
||
<li>Frequently Asked Questions</li>
|
||
<li class="wy-breadcrumbs-aside">
|
||
|
||
|
||
<a href="_sources/faq.txt" rel="nofollow"> View page source</a>
|
||
|
||
|
||
</li>
|
||
</ul>
|
||
<hr/>
|
||
</div>
|
||
<div role="main" class="document">
|
||
|
||
<img alt="Because curious cats ask clever code monkeys." class="align-right" src="_images/icon_faq.png" />
|
||
<div class="section" id="frequently-asked-questions">
|
||
<h1>Frequently Asked Questions<a class="headerlink" href="#frequently-asked-questions" title="Permalink to this headline">¶</a></h1>
|
||
<p>Here I’ll try to list some common questions that get asked for.</p>
|
||
<div class="section" id="why">
|
||
<h2>Why...<a class="headerlink" href="#why" title="Permalink to this headline">¶</a></h2>
|
||
<div class="section" id="write-in-python-it-s-slow-bloated-bad">
|
||
<h3>...write in Python? It’s slow/bloated/bad?<a class="headerlink" href="#write-in-python-it-s-slow-bloated-bad" title="Permalink to this headline">¶</a></h3>
|
||
<div class="section" id="performance">
|
||
<h4>Performance<a class="headerlink" href="#performance" title="Permalink to this headline">¶</a></h4>
|
||
<dl class="docutils">
|
||
<dt>Profiles were configured with command <code class="docutils literal"><span class="pre">bash</span> <span class="pre">-c</span> <span class="pre">exit</span></code>, and the</dt>
|
||
<dd>commands run a couple of times to get the caches loaded up.</dd>
|
||
</dl>
|
||
<p>GNOME-Terminal:</p>
|
||
<div class="highlight-python"><div class="highlight"><pre>time for i in {1..30} ; do gnome-terminal --profile=Quickexit; done
|
||
|
||
real 0m10.606s
|
||
</pre></div>
|
||
</div>
|
||
<p>Terminator:</p>
|
||
<div class="highlight-python"><div class="highlight"><pre>time for i in {1..30} ; do terminator -g deletemeconfig -p Quickexit; done
|
||
|
||
GTK2: real 0m11.928s A smidgen slower.
|
||
GTK3: real 0m10.885s Yeah, basically identical!
|
||
</pre></div>
|
||
</div>
|
||
<p>Cold start, using <code class="docutils literal"><span class="pre">sync</span> <span class="pre">&&</span> <span class="pre">echo</span> <span class="pre">3</span> <span class="pre">></span> <span class="pre">/proc/sys/vm/drop_caches</span></code> before
|
||
each run, then launching a single timed instance.</p>
|
||
<p>Gnome-Terminal:</p>
|
||
<div class="highlight-python"><div class="highlight"><pre>time gnome-terminal --profile=Quickexit
|
||
|
||
real 0m7.628s (approx median, there was a strange variance for GT, between 5 and 9 secs)
|
||
</pre></div>
|
||
</div>
|
||
<p>Terminator:</p>
|
||
<div class="highlight-python"><div class="highlight"><pre>time terminator -g deletemeconfig -p Quickexit
|
||
|
||
GTK2: real 0m11.390s (median of 3x)
|
||
GTK3: real 0m11.264s (median of 3x)
|
||
</pre></div>
|
||
</div>
|
||
<p>OK, so this is the once place you would notice an appreciable
|
||
difference. How often do you start these things with completely empty
|
||
caches/buffers?</p>
|
||
<p>In GTK2 there is a known issue which slows the cat’ing of large files
|
||
quite a bit. The VTE in GTK3 Terminator is the <em>exact</em> same widget
|
||
GNOME-Terminal uses, so this will get better, as and when we move
|
||
fully to the in-progress GTK3 port. I should point out that this
|
||
performance deficit is not due to the Python interpreter, or the
|
||
Terminator Python code, but is solely down to the compiled C code VTE
|
||
widget.</p>
|
||
</div>
|
||
<div class="section" id="memory-use-the-dumb-way">
|
||
<h4>Memory use - The dumb way<a class="headerlink" href="#memory-use-the-dumb-way" title="Permalink to this headline">¶</a></h4>
|
||
<p>GNOME-Terminal:</p>
|
||
<div class="highlight-python"><div class="highlight"><pre> for i in {1..100} ; do gnome-terminal --disable-factory & done
|
||
|
||
root@pinpoint:~# sync && echo 3 > /proc/sys/vm/drop_caches && free # Before startup
|
||
total used free shared buffers cached
|
||
Mem: 3102404 1388776 1713628 4052 164 45340
|
||
-/+ buffers/cache: 1343272 1759132
|
||
Swap: 3121996 788704 2333292
|
||
root@pinpoint:~# sync && echo 3 > /proc/sys/vm/drop_caches && free # After startup
|
||
total used free shared buffers cached
|
||
Mem: 3102404 2439524 662880 57196 1240 99212
|
||
-/+ buffers/cache: 2339072 763332
|
||
Swap: 3121996 751440 2370556
|
||
root@pinpoint:~# sync && echo 3 > /proc/sys/vm/drop_caches && free # After kill
|
||
total used free shared buffers cached
|
||
Mem: 3102404 1466536 1635868 4796 160 45912
|
||
-/+ buffers/cache: 1420464 1681940
|
||
Swap: 3121996 751020 2370976
|
||
|
||
Used (used mem -buffers/cache + swap)
|
||
Before start: 2131976
|
||
After start : 3090512 = 958536 kbytes, 936 Mbytes / 9.36 MBytes/instance
|
||
After kill : 2171484 = 39508 kbytes, 38 Mbytes not recovered
|
||
</pre></div>
|
||
</div>
|
||
<p>Terminator GTK2:</p>
|
||
<div class="highlight-python"><div class="highlight"><pre>for i in {1..100} ; do terminator -g deletemeconfig -u & done
|
||
|
||
root@pinpoint:~# sync && echo 3 > /proc/sys/vm/drop_caches && free
|
||
total used free shared buffers cached
|
||
Mem: 3102404 1313456 1788948 4284 152 43844
|
||
-/+ buffers/cache: 1269460 1832944
|
||
Swap: 3121996 736844 2385152
|
||
root@pinpoint:~# sync && echo 3 > /proc/sys/vm/drop_caches && free
|
||
total used free shared buffers cached
|
||
Mem: 3102404 2866552 235852 19484 1084 65408
|
||
-/+ buffers/cache: 2800060 302344
|
||
Swap: 3121996 736340 2385656
|
||
root@pinpoint:~# sync && echo 3 > /proc/sys/vm/drop_caches && free
|
||
total used free shared buffers cached
|
||
Mem: 3102404 1317724 1784680 4284 152 43464
|
||
-/+ buffers/cache: 1274108 1828296
|
||
Swap: 3121996 736304 2385692
|
||
|
||
Used (used mem -buffers/cache + swap)
|
||
before start: 2006304
|
||
after start : 3536400 = 1530096 kbytes, 1494 Mbytes / 14.94 MBytes/instance
|
||
after kill : 2010412 = 4108 kbytes, 4 Mbytes not recovered
|
||
</pre></div>
|
||
</div>
|
||
<p>Terminator GTK3:</p>
|
||
<div class="highlight-python"><div class="highlight"><pre>for i in {1..100} ; do terminator -g deletemeconfig -u & done
|
||
|
||
root@pinpoint:~# sync && echo 3 > /proc/sys/vm/drop_caches && free
|
||
total used free shared buffers cached
|
||
Mem: 3102404 1467204 1635200 4816 120 46132
|
||
-/+ buffers/cache: 1420952 1681452
|
||
Swap: 3121996 751000 2370996
|
||
root@pinpoint:~# sync && echo 3 > /proc/sys/vm/drop_caches && free
|
||
total used free shared buffers cached
|
||
Mem: 3102404 2848372 254032 7216 960 52652
|
||
-/+ buffers/cache: 2794760 307644
|
||
Swap: 3121996 750016 2371980
|
||
root@pinpoint:~# sync && echo 3 > /proc/sys/vm/drop_caches && free
|
||
total used free shared buffers cached
|
||
Mem: 3102404 1483388 1619016 4820 148 46084
|
||
-/+ buffers/cache: 1437156 1665248
|
||
Swap: 3121996 749828 2372168
|
||
|
||
Used (used mem -buffers/cache + swap)
|
||
before start: 2171952
|
||
after start : 3544776 = 1372824 kbytes, 1340 Mbytes / 13.41 MBytes/instance
|
||
after kill : 2186984 = 15032 kbytes, 15 Mbytes not recovered
|
||
</pre></div>
|
||
</div>
|
||
<p>OK, so yes, there is more overhead. We did just start 100 Python
|
||
interpreters! As titled, this is dumb, and even if you use this dumb
|
||
method, are you really going to have a hundred of them?...</p>
|
||
</div>
|
||
<div class="section" id="memory-use-the-sensible-way">
|
||
<h4>Memory use - The sensible way<a class="headerlink" href="#memory-use-the-sensible-way" title="Permalink to this headline">¶</a></h4>
|
||
<p>GNOME-Terminal:</p>
|
||
<div class="highlight-python"><div class="highlight"><pre>gnome-terminal &
|
||
for i in {1..100} ; do gnome-terminal & done
|
||
|
||
root@pinpoint:~# sync && echo 3 > /proc/sys/vm/drop_caches && free # Before 100
|
||
total used free shared buffers cached
|
||
Mem: 3102404 1490996 1611408 5344 172 47580
|
||
-/+ buffers/cache: 1443244 1659160
|
||
Swap: 3121996 749776 2372220
|
||
root@pinpoint:~# sync && echo 3 > /proc/sys/vm/drop_caches && free # After 100
|
||
total used free shared buffers cached
|
||
Mem: 3102404 1878228 1224176 5344 172 47388
|
||
-/+ buffers/cache: 1830668 1271736
|
||
Swap: 3121996 733396 2388600
|
||
root@pinpoint:~# sync && echo 3 > /proc/sys/vm/drop_caches && free # After kill
|
||
total used free shared buffers cached
|
||
Mem: 3102404 1491888 1610516 4840 272 46088
|
||
-/+ buffers/cache: 1445528 1656876
|
||
Swap: 3121996 733240 2388756
|
||
|
||
Used (used mem -buffers/cache + swap)
|
||
Before start: 2193020
|
||
After start : 2564064 = 371044 kbytes, 362 Mbytes / 3.59 MBytes/instance
|
||
After kill : 2178768 = −14252 kbytes, -13.92 Mbytes recovered (first process)
|
||
</pre></div>
|
||
</div>
|
||
<p>Terminator GTK2:</p>
|
||
<div class="highlight-python"><div class="highlight"><pre>terminator -g deletemeconfig &
|
||
for i in {1..100} ; do terminator -g deletemeconfig -u & done
|
||
|
||
root@pinpoint:~# sync && echo 3 > /proc/sys/vm/drop_caches && free
|
||
total used free shared buffers cached
|
||
Mem: 3102404 1324492 1777912 4388 152 49688
|
||
-/+ buffers/cache: 1274652 1827752
|
||
Swap: 3121996 744528 2377468
|
||
root@pinpoint:~# sync && echo 3 > /proc/sys/vm/drop_caches && free
|
||
total used free shared buffers cached
|
||
Mem: 3102404 1652112 1450292 4756 860 49968
|
||
-/+ buffers/cache: 1601284 1501120
|
||
Swap: 3121996 744224 2377772
|
||
root@pinpoint:~# sync && echo 3 > /proc/sys/vm/drop_caches && free
|
||
total used free shared buffers cached
|
||
Mem: 3102404 1305376 1797028 4236 124 42836
|
||
-/+ buffers/cache: 1262416 1839988
|
||
Swap: 3121996 744116 2377880
|
||
|
||
Used (used mem -buffers/cache + swap)
|
||
before start: 2019180
|
||
after start : 2345508 = 326328 kbytes, 319 Mbytes / 3.16 MBytes/instance
|
||
after kill : 2006532 = −12648 kbytes, -12.35 Mbytes recovered (first process)
|
||
</pre></div>
|
||
</div>
|
||
<p>Terminator GTK3:</p>
|
||
<div class="highlight-python"><div class="highlight"><pre>Not possible at the moment because the DBus interface still needs fixing.
|
||
</pre></div>
|
||
</div>
|
||
<p>So that one surprised me a bit. The fact that when using the single
|
||
process we are <strong>more</strong> memory efficient. Python + 100 terminals is
|
||
using <90% of the GNOME-Terminal + 100 terminals.</p>
|
||
<p>Some may think that this is something to do with the different version
|
||
of the VTE widget, but hang on a second. In the dumb method GTK2
|
||
Terminator used <strong>more</strong> memory than GTK3. Once the DBus is fixed for
|
||
GTK3 there could potentially be more savings.</p>
|
||
</div>
|
||
<div class="section" id="python-sucks">
|
||
<h4>“Python sucks!”<a class="headerlink" href="#python-sucks" title="Permalink to this headline">¶</a></h4>
|
||
<p>Yeah, whatever. The fact is that I’m a helluva lot more productive in
|
||
Python than I ever was, am, or will be, in C. In my totally biased
|
||
and uninformed opinion, I also think certain things are <em>much</em> easier
|
||
to get working in Python because you can iterate faster. With the
|
||
<a class="reference internal" href="advancedusage.html#debugging"><span>Debugging</span></a> option to run an interactive terminal you even
|
||
have the ability to try out ideas and explore the running instance
|
||
directly. Results don’t get more immediate than that!</p>
|
||
</div>
|
||
<div class="section" id="in-summary">
|
||
<h4>In summary<a class="headerlink" href="#in-summary" title="Permalink to this headline">¶</a></h4>
|
||
<p>It’s a bit slower on startup, it takes a bit more memory, but that’s
|
||
when you use the dumb method. In normal use, where you’re likely to
|
||
be using the existing process to open a new window, it is for all
|
||
practical purposes as fast as the compiled GNOME-Terminal. It may
|
||
even (according to the last memory section) be a little lighter
|
||
memory wise, and more obliging about giving it back!</p>
|
||
<p>I didn’t compare to things like xterm, because frankly we’re not
|
||
aimed at the same people. Personally I’d rather have the more
|
||
extensive features saving me <em>lots</em> of time over the course of the
|
||
day when using it, than save a handful of seconds every few days
|
||
when I restart it, or worrying about an extra 5 or 10 MBytes.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="how-do-i">
|
||
<h2>How do I...<a class="headerlink" href="#how-do-i" title="Permalink to this headline">¶</a></h2>
|
||
<div class="section" id="make-terminator-work-like-quake-style-terminals">
|
||
<h3>...make Terminator work like Quake style terminals?<a class="headerlink" href="#make-terminator-work-like-quake-style-terminals" title="Permalink to this headline">¶</a></h3>
|
||
<blockquote>
|
||
<div><p>You can get close, but it isn’t a perfect recreation, as Terminator
|
||
was not designed with this in mind, but improvements are always welcome!</p>
|
||
<ul class="simple">
|
||
<li>Window state: Hidden</li>
|
||
<li>Always on top: On</li>
|
||
<li>Show on all workspaces: On</li>
|
||
<li>Hide on lose focus: On</li>
|
||
<li>Hide from taskbar</li>
|
||
<li>Window borders: Off (use <code class="docutils literal"><span class="pre">Alt</span></code>+<code class="docutils literal"><span class="pre">click-drag</span></code> and
|
||
<code class="docutils literal"><span class="pre">Alt</span></code>+<code class="docutils literal"><span class="pre">middle-click-drag</span></code> to position and size window.)</li>
|
||
<li>Set the Toggle window visibility shortcut to your preference</li>
|
||
</ul>
|
||
<div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last">It must be the first Terminator instance started, because
|
||
at present only the first instance can bind to the Window
|
||
toggle.</p>
|
||
</div>
|
||
<p>This will give you a terminal hidden at startup that appears with a
|
||
keypress and disappears, either with another keypress, or losing focus.
|
||
It will stay on top, and appear on whichever workspace you are on.</p>
|
||
<p>Something that we don’t have is the slide in action of a true Quake
|
||
style terminal. The terminal will simply flick into view, and flick
|
||
out of view.</p>
|
||
<div class="admonition warning">
|
||
<p class="first admonition-title">Warning</p>
|
||
<p class="last">The Hide on lose focus option is problematic at this
|
||
time. You will probably find it very frustrating.</p>
|
||
</div>
|
||
</div></blockquote>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
<footer>
|
||
|
||
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
||
|
||
<a href="gettinginvolved.html" class="btn btn-neutral float-right" title="Getting involved" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
|
||
|
||
|
||
<a href="advancedusage.html" class="btn btn-neutral" title="Advanced Usage" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
||
|
||
</div>
|
||
|
||
|
||
<hr/>
|
||
|
||
<div role="contentinfo">
|
||
<p>
|
||
© Copyright 2015, Stephen Boddy, licensed under the CC-BY-SA..
|
||
</p>
|
||
</div>
|
||
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||
|
||
</footer>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</section>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<script type="text/javascript">
|
||
var DOCUMENTATION_OPTIONS = {
|
||
URL_ROOT:'./',
|
||
VERSION:'1.0 alpha',
|
||
COLLAPSE_INDEX:false,
|
||
FILE_SUFFIX:'.html',
|
||
HAS_SOURCE: true
|
||
};
|
||
</script>
|
||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||
|
||
|
||
|
||
|
||
|
||
<script type="text/javascript" src="_static/js/theme.js"></script>
|
||
|
||
|
||
|
||
|
||
<script type="text/javascript">
|
||
jQuery(function () {
|
||
SphinxRtdTheme.StickyNav.enable();
|
||
});
|
||
</script>
|
||
|
||
|
||
</body>
|
||
</html> |