This pertains to Tcl 8.5 Say I have a very large dictionary. From performance points of view (memory footprint, etc), assuming that I do not modify the dictionary, should upvar provide a massive performance improvement in terms of memory? I am using an EDA tool, which has TCL shell, but the vendor disabled the TCL memory command. I know that Tcl can share strings under the hood for performance... The same dictionary can be passed several nested procs' calls. Thanks.
Tcl upvar performance improvement vs. direct pass
297 Views Asked by user1134991 At
2
There are 2 best solutions below
Related Questions in TCL
- Is there a proper way to "break" out of a switch script and remain in the procedure other than wrapping in a loop?
- Tcl/TK: how to prevent screen tearing?
- Need help on _tkinter.TclError: invalid command name "<!DOCTYPE"
- Is it possible to use function pointers with critcl?
- In Tcl, why do I have to use quotes and curly braces for expr's argument when comparing two string literals?
- What are JCL Alternitives for Embeded Applications?
- sort array of floating point numbers in tcl
- TclOO metaclass classes objects and objdefine
- In Tcl, why is the string length of an empty string 1, not 0?
- exit(EXIT_FAILURE) : the Tcl C API equivalent
- How to decompress the contents of a var to another var?
- namespace ensemble create : limited scope
- why DSR is not working in FANET in NS2 using z=10.0
- anaconda search path ruins tcl package search path
- Tcl package textutil disappeared
Related Questions in PROC
- I cannot export parameter estimates for different groups using proc model in SAS
- Testing WiFi Linux driver for certification using procfs question
- How can I get a list of processes running by a specific user?
- I'm trying to understand recursion in Tcl, but every time the recursion finishes it throws errors
- Discrepancy between values in htop and /proc/meminfo
- PROC SORT not sorting properly
- Calculated a pooled AUC, bootstrapped 95% CI and then thresholding the curve following MICE imputation
- SQLSTATE=42829 while compiling a pro*c code with DB2 database
- How to access a list, that is passed to a proc to be modified, outside of that proc in TCL?
- collect /proc/<pid> information of process during process crash in linux
- tcl how to redefine "set" command
- Using SAS with multiple rows per ID to retain all records of that ID if any of them contain State=MI
- Mean Median legend for a boxplot using PROC TEMPLATE in SAS
- Getting numbers of true positives, negatives, likelihood ratio from a pROC ROC curve
- what is the difference between 'comm' file and 'cmdline' file in a /proc/<pid> directory?
Related Questions in UPVAR
- Why does this code with TCL Upvar command generate an error?
- Why does this upvar refer to the global context? Or can upvar be used in a coroutine?
- How to access a variable defined in proc 'a' from a different proc 'b' which does not call proc 'a'?
- Tcl: Why is the dollar sign used in the first argument to `upvar`?
- Tcl - Append or Modify a nested list in called function
- Tcl upvar and uplevel in performance
- Assigning to a variable in a parent context in Bash
- Tcl/Tk: scope of variables for a function within a function
- Expected TCL: upvar vs namespace variable performance
- What purpose does upvar serve?
- Tcl upvar performance improvement vs. direct pass
- Tcl upvar issue
- Difference between upvar 0 and upvar 1 in TCL
- What is the difference between a TCL namespace and a stack frame?
- how do I update a variable via a tk window by name
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
As long as you don't modify the dictionary, it won't provide much noticeable performance difference or memory-consumption difference.
Tcl passes values by immutable reference, and copies them when you write an update to them if they're shared, e.g., between a global variable and a local variable (procedure formal parameters are local variables). If you never change anything, you're going to use a shared reference and everything will be quick. If you do need to change something, you should use
upvarorglobal(or one of the more exotic variants) to make a local variable alias to the caller's/global variable and change via that, as that's fastest. But that's only an issue if you're going to change the value.