Sponsored Content
Top Forums Shell Programming and Scripting Display-performance in terminal, bash or python? Post 302905502 by sea on Thursday 12th of June 2014 12:46:16 AM
Old 06-12-2014
The only place i use tput is as a fallback if $COLUMNS is not set, as this is required to print the output according to the currently available columns/width.

Allthough i've seen several scripts using tput as they're core output, i was used (from batch files) to use echo as output.
Quickly after i joined this forum, i've figured echo might not be available on all systems, and changed to printf instead.

An executable for each and every task, yeno...
The core/key components are:
  • tui-printf (absolute core!, this is even the base for: )
  • tui-echo
  • tui-header (the blue one)
  • tui-title (the white one)

If you look at the screenshot, the 'lower' output also uses: tui-value-get, which only returns either all variable names (all strings/lines not starting with # and having a string like VARNAME= without the =) or just the single value of the provided varname of a file. (eg: tui-value-get -l CONFFILE / value=$(tui-value-get CONFFILE VARNAME)).
So this is called 8 times in the screenshot above... 1 time to list all the VARIABLES, and 1 time per variable (7) to be read/displayed.
So to print those 20 lines, i'm calling/using:
  • 1 x tui-header
  • 4 x tui-title
  • 15 x tui-echo
  • 8 x tui-value-get (in a for-loop)
and it 'only' needs 0.433 seconds, that is around 0.021 secs per line (0.015 respectivly per command) on average, to my feeling this is fast already, at least considering that 28 commands were executed (of which some rely on sed/grep/awk combinations) and all but tui-value-get rely on tui-printf.
And keep in mind, its always printing a full line - using all available width of the terminal, not only a few chars / words per line.

Some parts of the first 'performance-rewrite' also caused several vars to be placed in $env beeing set using /etc/profile.d/tui.sh. Also, tui-printf was using a custom function 'printx' which had to be sourced first, changing that completly to tui-printf was a speed increase of like 0.250 secs.

Initialy, like 2-2.5 years ago, i've had a folder containing several scripts providing functions.
But back then TUI was part of another script-package, completly 'involved', not seperate at all.
But since TUI is ment as an 'interface framework' i wanted the users/scripters to simply call the function they want, instead of sourcing just 'everything'.
So by now, the scripts only source files upon real need, as in username/email/prefered licence/licence url are only read/sourced by tui-new-script.

Well, i'm learning python now anyway, for future projects at least.
This thread is merly to figure if TUI has to be rewritten for the 5th or 6th time SmilieSmilie

Code examples:
tui (to config the vars)
tui-printf (absolute core fuction)
tui-value-get

So, writing this in python, would decrease the time used (those 0.433s from the screenshot) down to 0.090 or even as less as 0.043 for all those 20 lines?
(friend promised 500-1000% speed gain, which i hardly can imagine)

And if i may ask along, what do you think of this TUI framework?

EDIT:
I keep learning python, maybe i understand your arguments better later on.

Last edited by sea; 06-12-2014 at 03:41 AM.. Reason: forgot main question at the end (2nd last actualy)
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

terminal display

I want to display a system warning message at the prompt of every live terminal on a sun solaris 8 machine using CDE. I know this can be done on a console, but what about dtterm and xterm regular windows? Does anyone know how this is done? What about a single terminal? Clear skies,... (2 Replies)
Discussion started by: seismic_willy
2 Replies

2. UNIX for Advanced & Expert Users

Understanding terminal display of (awkward) characters

Gurus, I've been on computers for a while, but I've yet to have the behind-the-scenes knowledge. I'm not sure if this is so much a Unix question as it is a nitty gritty computer one. We received a customer file which had a "funny apostrophe." When displaying the file via more, the character... (1 Reply)
Discussion started by: effigy
1 Replies

3. Shell Programming and Scripting

date and time to display on the terminal

hi all, am trying to 'grep' some text from a log file and use the 'cut' command to read from that line i just grep'ed to extract date/time and response times. code sniplet i am using is : grep -i 'text to grep' Out.log | while read LINE; do ... (11 Replies)
Discussion started by: cesarNZ
11 Replies

4. Shell Programming and Scripting

How to have color coded Terminal display,(like linux)

Hi all, I would like to know how to have a color display in the terminal... In the sense that, In many linux terminals,we have color coded for each file type, green for executable ,blue for dirs and so on... I wanted to know how i can have the same arrangement in solaris(b-79a) I am not... (5 Replies)
Discussion started by: wrapster
5 Replies

5. Windows & DOS: Issues & Discussions

Display running 'app' in terminal titlebar?

Hi. I was, not too long ago, an OS X home user. One of the things I remember from using the Apple-installed Terminal is: whenever an executable that took more than a split second to do its thing was running, its name would appear in the title bar in a way similar to "Terminal: ssh" or "Terminal:... (0 Replies)
Discussion started by: SilversleevesX
0 Replies

6. Shell Programming and Scripting

How to display message when starting a terminal

Hello all, I would like a message to be displayed on the shell when someone opens up the terminal - something like a welcome msg with date and time. I know how to do this by running the shell commands but dont know how to display it when a user opens up the terminal? Thanks in advance (27 Replies)
Discussion started by: mrudula009
27 Replies

7. UNIX for Advanced & Expert Users

Performance impact of terminal output

Hello, I am doing fluid simulations using OpenFOAM. This program produces a lot of output every time step. Producing output is surely not the most time consuming part, but I wonder whether writing output to the terminal or writing it into a file is faster. With thousands of time steps a... (1 Reply)
Discussion started by: Chuck Morris
1 Replies

8. UNIX for Advanced & Expert Users

Unix terminal display related issue

Want few input related to unix environment and terminal settings: 1. Am trying to find a way to keep the unix terminal display intact even after opening and closing a vi/less file. Currently if I open a vim file in the unix terminal and then close the file,it displays the contents of vim file on... (4 Replies)
Discussion started by: talktovkjain
4 Replies

9. Homework & Coursework Questions

Display info about users (UID GID processes terminal)

I would like to get an opinion for my solution for this task and get feedback about better approach or mistakes I have made. 1. The problem statement, all variables and given/known data: The task is to create a script which prints information about users whose names are specified in the... (2 Replies)
Discussion started by: kornfan
2 Replies

10. Shell Programming and Scripting

Convert excel to csv in python date not display exactly

Hi, Anyone can help I am just converting the excel file to csv using python, I can get the conversion output but the date not display exactly. test.xlsx date format 167 1588 risks/SCS JP CAMPANA & CIE.pdf SCS JP CAMPANA & CIE 2 1 1 0 2015-03-16 16:56:25 167 1146 risks/AirBNB... (1 Reply)
Discussion started by: fspalero
1 Replies
All times are GMT -4. The time now is 09:46 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy