2015-08-08 02:11:30 +00:00
<!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#api-docs" > API Docs< / 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
2015-08-08 04:27:53 +00:00
< a class = "reference internal" href = "advancedusage.html#debugging" > < span > Debugging< / span > < / a > option to run an interactive terminal you even
2015-08-08 02:11:30 +00:00
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" > right-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 >